struts2 xml验证文件有红叉显示http:www.opensymphony.comxworkxwork-validator-1.0.3.dtd如何解决

struts2 xml验证文件有红叉显示http:www.opensymphony.comxworkxwork-validator-1.0.3.dtd如何解决,第1张

首先孙迅,struts2进行权限验证是用拦截器做的

一个则仔此简单的登录拦截器示例如戚游下:

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,表明验证失败的时候返回你刚才的那个表单页面。我使用的时候是正常的(密码不保存),不是很清楚你这里的问题是什么。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12282098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存