Jsp 使用验证时无法在struts 2中提交表单
在过去的几个小时里,我一直面临一个问题,即每当我在应用程序中使用验证时,服务器端就会出现空值 我的操作文件如下所示:Jsp 使用验证时无法在struts 2中提交表单,jsp,validation,struts2,interceptor,struts2-convention-plugin,Jsp,Validation,Struts2,Interceptor,Struts2 Convention Plugin,在过去的几个小时里,我一直面临一个问题,即每当我在应用程序中使用验证时,服务器端就会出现空值 我的操作文件如下所示: @ParentPackage("interceptions") @InterceptorRefs({ @InterceptorRef("loggingStack") }) @Results({@Result(name="login",location="login.layout",type="tiles")}) public class LoginAction e
@ParentPackage("interceptions")
@InterceptorRefs({
@InterceptorRef("loggingStack")
})
@Results({@Result(name="login",location="login.layout",type="tiles")})
public class LoginAction extends ActionSupport implements ModelDriven{
UpUser user = new UpUser();
String customField;
@Validations(requiredFields={@RequiredFieldValidator(type=ValidatorType.SIMPLE,fieldName="customField",message="YOU")})
@Action(value="/login",results={
@Result(name="success",location="secure.layout",type="tiles")})
public String execute() {
if(user.getUserScreenName()==null)
return "login";
System.out.println(userBo.verifyUser(user));
return "success";
}
public Object getModel(){
return user;
}
@VisitorFieldValidator(message="")
public UpUser getUser() {
return user;
}
public void setUser(UpUser user) {
this.user = user;
}
public String getCustomField() {
return customField;
}
public void setCustomField(String customField) {
this.customField = customField;
}
}
在我的struts.xml中,我将拦截器定义为:
<package name="interceptions" extends="struts-default" namespace="/">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>
<interceptors>
<interceptor name="mylogging"
class="com.kiosk.lab.interceptor.LoggingInterceptor">
</interceptor>
<interceptor-stack name="loggingStack">
<interceptor-ref name="mylogging" />
<interceptor-ref name="validation">
<param name="validateAnnotatedMethodOnly">true</param>
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
</package>
真的
输入、返回、取消、浏览
输入、返回、取消、浏览
我发送数据的JSP是:
现在我不确定这个问题,但是,我甚至从我的操作中删除了ActionSupport,并以两种方式添加和测试了它,但运气不好。其次,如果我在struts.xml中注释掉截取部分,并从操作中删除validations标记,那么每件事情都可以正常工作。服务器端的Else customField值为空
更新:
在回答了几个问题之后,就可以很好地验证这些值了,因为在java中所有的值都是空的,并且显示了实际的错误消息。但是,我仍然面临着类似的问题,即它没有从JSP提交值。因为,它总是为空,并且不断发布相同的验证错误消息。您需要在下面添加,以便可以运行defaultStack中定义的验证侦听器
<interceptor-ref name="defaultStack" />
您需要在下面添加,以便可以运行defaultStack中定义的验证拦截器
<interceptor-ref name="defaultStack" />
使用config browser插件调试您的应用程序,看看验证是否在拦截器列表中谢谢@Alireza,但它仍然没有给出从jsp到Java的值。您确定工作流拦截器也是这样吗?似乎在你的代码中没有这个用途?!使用配置浏览器插件调试您的应用程序,看看验证是否在拦截器列表中谢谢@Alireza,但它仍然没有给我从jsp到Java的值。您确定工作流拦截器也是这样吗?似乎在你的代码中没有这个用途?!