异常及其解决方案(更新中)

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类来处理一个表单中多个按钮是出现以上异常

 

资源文件中使用了中文

java 代码
  1. a.submit=A\u6309\u94AE   
  2. b.submit=B\u6309\u94AE   
  3. c.submit=C\u6309\u94AE  

对应的中文意思为

 a.submit=A按钮
b.submit=B按钮
c.submit=C按钮

 

LookupDispatchAction类中

java 代码
  1. public class TestLookupDispachAction extends LookupDispatchAction {   
  2.   
  3.     public ActionForward a(ActionMapping mapping, ActionForm form,   
  4.             HttpServletRequest request, HttpServletResponse response) {   
  5.         TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub   
  6.         System.out.println("LookupDispatchAction----a button");   
  7.         return null;   
  8.     }   
  9.     public ActionForward b(ActionMapping mapping, ActionForm form,   
  10.             HttpServletRequest request, HttpServletResponse response) {   
  11.         TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub   
  12.         System.out.println("LookupDispatchAction----b button");   
  13.         return null;   
  14.     }   
  15.     public ActionForward c(ActionMapping mapping, ActionForm form,   
  16.             HttpServletRequest request, HttpServletResponse response) {   
  17.         TestLookupDispachForm testLookupDispachForm = (TestLookupDispachForm) form;// TODO Auto-generated method stub   
  18.         System.out.println("LookupDispatchAction----c button");   
  19.         return null;   
  20.     }   
  21.   
  22.     @Override  
  23.     protected Map getKeyMethodMap() {   
  24.         // TODO 自动生成方法存根   
  25.         Map map=new HashMap();   
  26.         map.put("a.submit""a");   
  27.         map.put("b.submit""b");   
  28.         map.put("c.submit""c");   
  29.         return map;   
  30.     }   
  31. }  

getKeyMethodMap()方法使按钮和对应的方法进行了关联

JSP中

java 代码
  1.   
  2.     <html:submit property="&amp;lt;br"> </html:submit>   
  3.     <html:submit property="&amp;lt;br"> </html:submit>
  4.     <html:submit property="&amp;lt;br"> </html:submit>
  5.         

JSP中能正常显示中文,但是从异常信息里看出是LookupDispatchAction类中不能识别中文

将资源文件中的“按钮”换成英文,问题可以得到解决

但是 如果一定要中文的,该如何解决,还在摸索中

如有高手知道 请指点下!

(此问题已解决,方法如下 首先添加一个字符过滤器类,把他添加到web.xml文件中,过滤器实现了Filter接口 在其doFilter()方法中  对编码进行设置的时候 request.setCharacterEncoding("gbk");  一定要和JSP页面上的编码统一,也就是说过滤器类中的编码是gbk,我的jsp页面上的编码也要是gbk。不管使用哪种编码,2者必须统一!血的教训!!哈哈·)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值