Struts1小案例问题教训总结(含中文乱码问题及解决)

1. 提交form后页面空白,没有任何显示,Debug发现form的validate()以及action的execute()根本没有被调用。

  原因:validate()和execute()有2个互为overloading关系的版本,一个版本的参数类型是ServletRequest,ServletResponse,另一个版本的参数类型是HttpServletRequest,HttpServletResponse。我在写的时候写成不带Http的那个版本了。

 

2. JSTL的标签报exception,exception的意思大概是根据TLD里面的定义,该标签的test属性不接收参数

  原因:<%@ taglib %>的uri写错了,TLD里面的uri="http://java.sun.com/jsp/jstl/core",我写成了(因为eclipse的自动提示)http://java.sun.com/jstl/core

 

3. 输出页面使用EL输出form-bean的各个属性,全是空白

  原因:struts-config.xml中对action的配置是attribute="xxxForm2",但是在输出页面中EL却写成了 ${xxxForm.xxx}

 

4. 中文编码问题

  原因,没有使用filter,request.setCharacterEnconding()写在了form-bean的validate()中。因为validate调用的时候,Struts已经通过setter完成了对form-bean各个field的赋值,所以此时再调用request.setCharacterEncoding()已经为时过晚,在reset()中调用即可,或者采用filter(注意!reset()也跟validate()一样有两个版本,别搞错了!)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值