1.
javax.servlet.ServletException: Action[/testLookupDispach] missing resource 'Aæé®' in key method map
org.apache.struts.actions.LookupDispatchAction.getLookupMapName(LookupDispatchAction.java:240)
org.apache.struts.actions.LookupDispatchAction.getMethodName(LookupDispatchAction.java:281)
org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:158)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
在struts中使用LookupDispatchAction类来处理一个表单中多个按钮是出现以上异常
资源文件中使用了中文
- a.submit=A\u6309\u94AE
- b.submit=B\u6309\u94AE
- c.submit=C\u6309\u94AE
对应的中文意思为
a.submit=A按钮
b.submit=B按钮
c.submit=C按钮
LookupDispatchAction类中
- public class TestLookupDispachAction extends LookupDispatchAction {
- public ActionForward a(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub
- System.out.println("LookupDispatchAction----a button");
- return null;
- }
- public ActionForward b(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub
- System.out.println("LookupDispatchAction----b button");
- return null;
- }
- public ActionForward c(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) {
- TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub
- System.out.println("LookupDispatchAction----c button");
- return null;
- }
- @Override
- protected Map getKeyMethodMap() {
- // TODO 自动生成方法存根
- Map map=new HashMap();
- map.put("a.submit", "a");
- map.put("b.submit", "b");
- map.put("c.submit", "c");
- return map;
- }
- }
getKeyMethodMap()方法使按钮和对应的方法进行了关联
JSP中
- <html:submit property="&lt;br"> </html:submit>
- <html:submit property="&lt;br"> </html:submit>
- <html:submit property="&lt;br"> </html:submit>
JSP中能正常显示中文,但是从异常信息里看出是LookupDispatchAction类中不能识别中文
将资源文件中的“按钮”换成英文,问题可以得到解决
但是 如果一定要中文的,该如何解决,还在摸索中
如有高手知道 请指点下!
(此问题已解决,方法如下 首先添加一个字符过滤器类,把他添加到web.xml文件中,过滤器实现了Filter接口 在其doFilter()方法中 对编码进行设置的时候 request.setCharacterEncoding("gbk"); 一定要和JSP页面上的编码统一,也就是说过滤器类中的编码是gbk,我的jsp页面上的编码也要是gbk。不管使用哪种编码,2者必须统一!血的教训!!哈哈·)