在学习logic标签的iterate时,老是报cannot find message resources under key org.apache.struts.action.message 的错:
源代码如下:
<%
HashMap hp = new HashMap();
String veg[] = {"tomato","pepper"};
String fruit[] = {"banana","apple","pair","orange"};
String flowers[] = {"chrysanthemum","rose"};
String trees[] = {"willow"} ;
hp.put("vegetable", veg);
hp.put("fruit", fruit);
hp.put("flowers", flowers);
hp.put("trees", trees);
request.setAttribute("hasmap",hp);
%>
<logic:iterate id="element1" name="hasmap" indexId="ind1" >
<bean:write name="ind1"/>...<bean:write name="element1" property="key"/><br>
<logic:iterate name = "element1" property="value" id="element2">
<bean:write name="element2"/><br>
</logic:iterate>
</logic:iterate>
解决办法:
上面代码是正确的。只是web.xml的设置有问题,在使用struts的标签时,比如bean标签,有时会发生这个错误。
错误原因:
web.xml中配置缺失:
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
造成原因:可能是JBuilder造成的,呵呵
解决方法:添加上,位置如下:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>