SpringMVC(八)檢視,國際化,自定義檢視及解析圖
SpringMVC(八)檢視 檢視的作用是渲染模型資料,將模型裡的資料以某種形式呈現給使用者 檢視物件由檢視解析器負責例項化,由於檢視是無狀態的,所以他們不會有執行緒安全的問題。 view是一個高度抽象的介面 包括2個方法:getContentType() render(Map,httpsevletRequest,httpsevletResponse) 常用的檢視實現類 internalResourceView內部資源封裝成一個view物件 JstlView是internalResourceView的子類 頁面中
id:<input type="text"name="id"/> name :<input type="text"name="name"/>
為了實現國際化,針對不同的語言寫對應的資原始檔,.properties 資原始檔名稱_語言編碼_國家編碼.properties如下: abc_zh_CN.properties abc_en_US.properties key=value 在src下建立2個檔案 在abc_en_US.properties中寫入
id=ID
name=NAME
在abc_zh_CN.properties中寫入
id=編碼
name=姓名
完成國際化的步驟 1.有國際化語言的資原始檔 2.告知springmvc所使用的資原始檔 在springmvc.xml中配置
<bean **id="messageSource "** class="ResourcebundleMessageSource"> <property name="basename" value="abc"</property> </bean>
注:id="messageSource " 3.JSTL: Core: fmt:格式化輸出message 在頁面中使用fmt
<fmt:message key="id"></fmt:message>
<fmt:message key="name"></fmt:message>
在Java類中如下
@RequstMapping("/testGobal")
public String testGoba(){
return "a"; }
如何給一個檢視直接一個對映 mvc:view-controller 將Java中的程式碼刪除,在springmvc.xml中加入
<mvc:view-controller path="/abc" view-name="a"/>
在URL中直接使用對映地址 注:如果配置了這個對映,其他對映都無效 為了解決這個問題,只需要在配置檔案中加入
<mvc:annotation-driver ></mvc:annotation-driver>
自定義檢視及解析器 1.檢視型別:實現一個藉口view 2.檢視載入spring容器中 3.寫出對應的檢視解析器:beannameresolver
具體步驟如下: 建立一個Myview
@Component
//預設bean的ID為小寫字母的類名
public class Myview implements view {
//告知spring容器,contenttype
public String getContentType()
{
return "text/html";
}
public void render(Map<String> model ,HttpsevletRequest request,HttpsevletResponse response)
{response.getWriter().println("<h2>this is myview<h2>");}
}
在springmvx.xml中寫入檢視解析器
<bean class=org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order"value="100"></property>
</bean>
order的值決定優先順序,order值越大,優先順序越低。預設nternalResouceViewResolver的order值無限大,所以為其他解析圖定值只要夠小,優先順序就越高
開始用自定義檢視,在springmvc.xml中加入程式碼
<mvc:view-controller path="/myView" view-name="myView"/>
注:view-name預設為類名首字母小寫