Struts2 验证问题

问题描述 投票:0回答:1

我正在尝试使用 Struts2 验证注释来验证表单,但它似乎不起作用,并且标签上没有显示所需的标记。 这是我的代码:

login.jsp
:

 <s:form  action="/Login"  validate = "true">    
<table>
  <tr>
    <td><s:label theme=”simple” required="true">Username :</s:label></td>
    <td><s:textfield name="userName" theme=”simple” /></td>
  </tr>
  <tr>
    <td><s:label theme=”simple” required="true">Password :</s:label></td>
    <td><s:textfield name="password" theme=”simple” /></td>
  </tr>
  <tr>
      <td><s:submit  value="Login" /></td>
  </tr>
</table>
</s:form>

LoginAction.java
:

public class LoginAction extends ActionSupport {
    private String userName;
    private String password;
        
    @Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="User Name can ot be empty.", fieldName="userName")})
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
        
    @Validations(requiredStrings={@RequiredStringValidator(type=ValidatorType.FIELD, message="Password can ot be empty.", fieldName="password" )})
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
    public String execute()
    {
        return SUCCESS;
    }
}

struts.xml
:

<struts>
    <package name="demo" extends="struts-default">
        <action name="*" class="mypkg.action.{0}Action">
            <result name="success">/success.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>

有人可以帮忙并注意我的代码是否有问题吗?

java jsp validation struts2 themes
1个回答
0
投票

如果您使用

Validations
注释,那么您应该将其放在操作方法上。验证器注释放置在 setter 方法上。此外,您还使用
validate = "true"
,这意味着客户端验证。确保您已将 javascript(在
<s:head/>
的帮助下)和主题(如
xhtml
css_xhtml
)应用于表单,以使验证错误可见。 IE。主题
simple
在这里不起作用,请将其从字段中删除。

如果不指定主题,那么Struts 2将使用xhtml主题 默认情况下。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.