Struts的資源綁定
在使用Struts時(shí),我在我的struts-config.xml中配置了兩個(gè)資源文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="zy.pro.shd.controller.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/web/user/loginForm.jsp"
name="loginForm"
path="/login"
scope="request"
type="zy.pro.shd.controller.action.LoginAction">
<forward name="success" path="/web/user/loginResult.jsp" />
<forward name="failure" path="/web/user/loginResult.jsp" />
</action>
</action-mappings>
<message-resources parameter="zy.pro.shd.res.ApplicationResources_en" />
<message-resources parameter="zy.pro.shd.res.ApplicationResources_en1" />
注意:這樣就會(huì)出現(xiàn)錯(cuò)誤,因?yàn)樵O(shè)定了兩個(gè)默認(rèn)資源。
</struts-config>
我在我的jsp頁(yè)面中使用如下方式來(lái)訪問(wèn)我的資源文件
<body>
<br>
<a href="web/user/loginForm.jsp" target="_blank">user login </a>
<br>
<bean:message key="user.login"/>
<bean:message key="user.go"/>
<br>
</body>
結(jié)果就出現(xiàn)了以下異常:
javax.servlet.ServletException: Missing message for key "a.label"
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.web.index_jsp._jspService(index_jsp.java:79)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
zy.pro.shd.filter.ChineseFilter.doFilter(ChineseFilter.java:51)
如果我們的資源設(shè)置如下:
<message-resources parameter="zy.pro.shd.res.ApplicationResources_en" />
<message-resources key=”res1”
parameter="zy.pro.shd.res.ApplicationResources_en1" />
注意:這樣,前者為默認(rèn),后者不是。
記?。?lt;message-resources/>配置的是默認(rèn)資源。如果需要配置多個(gè)則需要設(shè)置其鍵值。
如果在程序(如在Action)中要訪問(wèn)另外的資源文件,可以使用如下辦法:
Local local=getLocal(request);
MessageResources message=getResources(request,”res1”);
String msg=messages.getMessage(locale,”hello.no.username”);
這樣,就可以訪問(wèn)res1中的信息了。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。