一个则仔此简单的登录拦截器示例如戚游下:
package com.zdf.interceptor
import com.opensymphony.xwork2.Action
import com.opensymphony.xwork2.ActionInvocation
import com.opensymphony.xwork2.interceptor.AbstractInterceptor
import com.zdf.entity.Admin
@SuppressWarnings("serial")
public class LoginInterceptor extends AbstractInterceptor{
@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
Admin admin = (Admin)invocation.getInvocationContext().getSession().get("ADMIN")
if(admin!=null){
return invocation.invoke()
}else{
return Action.LOGIN
}
}
}
用Struts2的内置校验器比较快,有两种风格的写法,假设你的filed名旅如简字叫price:校验文件的片段如下:
(1)
<!-- 双精度浮点数验证器 风格 -->
<validator type="double">
<param name="fieldName">price</param>
<param name="minExclusive">0.0</param>
<message>橡升该值必须大于并且不等于0</message>
</validator>
(2)
<!-- 字段验证器 风格 -->
<field name="price">
<field-validator type="double">
<param name="minExclusive">0.0</param>
<message>该值必须大于并且不等于0</message>
</field-validator>
</field>拆裤
根据你校验整个Action类,还是Action类里的具体actionName,命名为ActionClassName-validation.xml中,而把只有某方法具有的校验放在各自的ActionClassName-actionName-validation.xml中,放到Action类目录下就可以了。
当然上面说得是Struts 2服务器端校验(只加JS校验不可行,因为可以禁用JS给绕过去)。
如果加js校验就比较简单了,可以限制输入框中只能输入数字和小数点(这可以用window.event.keyCode在keyPress事件里判断),最后用parseFloat(value)>0就可以了。
验证失败时不进入action的,已经验证失败了再进入action就没什么意义了。配置result的时候需要配置一个input,表明验证失败的时候返回你刚才的那个表单页面。我使用的时候是正常的(密码不保存),不是很清楚你这里的问题是什么。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)