知识点:
1.关于action和namespace在struts.xml中添加一个package
<package name="loginspace" namespace="/loginspace" extends="struts-default" >
<action name="login" class="cn.com.structs.LoginAction" method="execute">
</package>
那么在jsp页面中
<s:form action="login" method="post" namespace="/loginspace">
这里要注意jsp中的action不能写成login.action,而package的namespace可以不写默认是’/’
2.通过xml配置文件进行效验:通过配置文件进行效验只需为Action指定一个效验文件即可
例如为LoginAction.java指定效验文件只需在LoginAction.java的同一目录下新建一个名为
LogoinAction-validation.xml的xml文件,而在struts.xml文件中添加一个
<result name=”input”>/logon.jsp</result>这样在登录信息提交给LoginAction.java之前先在效验文件里进行效验,如果不能通过效验则返回login.jsp并信息错误信息。当然这里只能进行前台效验像数据类型验证,为空验证,长度验证等。
3.通过复写validate()方法效验:struts2会自动检查FieldError里的值如果为空就会返回并显示错误信息,在jsp页面什么都不用写,错误信息会自动显示。不过不好用,因为参数传递格式问题搞复杂了,不如用配置文件效验方便。
小结:
Bad version number in .class file
跟jdk有关,找了资料,最后确定是由于 使用了对象类型跟基本型别做比较造成的,
jdk6是可以正常编译的,但是在低版本的jdk,就会出现
Bad version number in .class file错误
在配置效验文件总是包效验文件加载失败的异常,搞了好久,才发现,是效验文件的头部信息写错了:<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
这个头部信息当时是照着书敲的不过敲错了一个单词,像这样的东西还是copy比较安全