对今天的学习做个总结

现在真的很好,网络也可以给让你养成一个良好的学习习惯-对每天每个阶段的学习进行一个总结。而且一目了然,今后什么时候用到了就可以翻出来看看。 只恨高中时没这个条件啊...哈哈哈

好吧...开始..

今天中午吃饭前(如有雷同纯属巧合哈,因为我看到有一个网友也是这样的)把ssh2整合第一个程序运行起来。当时只实现了插入的操作,没发现jar包中少了antlr 的jar包。实现数据库查询时就出现了异常,上网一看(菜鸟的我也只能这样了)狂搜了一番之后发现是少了antlr的jar包--语法解析专用包。不然DAO层中的hql语句就不能执行了。这是框架版本之间上的问题,有些版本的jar包集中包含了antlr包。


然后就是struts2中的验证问题了

有两种方法 一:用代码的方式在action的validator()方法中进行验证
二:用struts2的验证框架
而struts2的验证框架处理方法又有两种:
1:<actionName>-validation.xml
2:<BeanName-contextName>-validation.xml
两种的处理方法差不多,第二种是以visitor的方式验证的。还有一点在spring applicationContext.xml中的将service bean的scope设置为prototype
这是因为struts2是有状态的,而struts1是无状态的。

//第一种
//<ActionName>-validation.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="uer.firstname">
<field-validator type="requiredstring">
<message>firstname required</message>
</field-validator>
</field>

<field name="user.lastname">
<field-validator type="requiredstring">
<message>lastname required</message>
</field-validator>
</field>

<field name="user.age">
<field-validator type="required">
<message>age required</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should between ${min} and ${max}</message>
</field-validator>
</field>

</validators>


//第二种
//<ActionName>-validation.xml

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
<field name="user">
<field-validator type="visitor">
<param name="context">user</param>
<param name="appendPrefix">true</param>
<message>user's</message>
</field-validator>
</field>
</validators>

//<beanName-contextName>-validation.xml

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>

<field name="firstname">
<field-validator type="requiredstring">
<message>firstname required</message>
</field-validator>
</field>

<field name="lastname">
<field-validator type="requiredstring">
<message>lastname required</message>
</field-validator>
</field>

<field name="age">
<field-validator type="required">
<message>age required</message>
</field-validator>
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message>age should between ${min} and ${max}</message>
</field-validator>
</field>

</validators>



这个过程中曾遇到这样一个问题。尽管验证框架搭建好了,但是程序运行时,就是不进行验证。错误的信息还是通过了。(经网上的高人指点)这样的情况主要有三种情况

1:命名是否严格按照要求进行
2:xxxx-validation.xml中的信息是否完全正确(我遇到的问题就是没完全正确的写对信息--少了两个字母)
3:信息中的filed中的name与其他相关地方的name得对应起来。
经过这三道工序的检查,应该是不会有问题了。


最后总结的经验,也是高人说的,真是一语惊醒梦中人,就是当我们遇到问题的时候,不慌,先尽量按照思路检查一遍,甚至更多遍。别一上来就对着问题上网一阵狂搜。最后问题解决了,原来就是自己的疏忽。浪费了很多时间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值