現在、Struts2を学んでいます。
フォームとアクション、validation.xmlとstruts.xmlを生成し動かしてみたのですが、フォームの情報を初期表示する際に空欄の値に対しStruts2側で毎回値を検証しようとするため、ユーザーが入力完了する前にエラーが表示されてしまいます。
初期表示の空欄に対してはStruts側でバリデーションチェックさせたくないのですが、どこをどのように修正すればいいでしょうか?
下記がそのコードです。アドバイスよろしくお願いします。
----login.jsp
lang
1<title>Login</title> 2<body> 3<h1>Login</h1> 4<s:form action="loginUser"> 5<s:textfield key="loginUserBean.userName" /> 6<s:password key="loginUserBean.password" /> 7<s:submit align="center" /> 8</s:form> 9</body> 10</html>
----struts.xml
lang
1<struts> 2<constant name="struts.devMode" value="true" /> 3<package name="logintest" extends="struts-default"> 4<action name="loginUser" class="foo.user.LoginUserAction" method="execute"> 5<result name="input">/views/user/login.jsp</result> 6</action> 7<action name="loginUser" class="foo.user.LoginUserAction" method="execute"> 8<result name="input">/views/user/login.jsp</result> 9<result name="success">/views/user/thanks.jsp</result> 10</action> 11</package> 12</struts>
----LoginUserAction.java
lang
1public class LoginUserAction extends ActionSupport { 2 3private User loginUserBean; 4public void setLoginUserBean(User loginUserBean) { this.loginUserBean = loginUserBean; } 5public User getLoginUserBean() { return loginUserBean; } 6 7public String login() throws Exception { return this.execute(); } 8public String execute() throws Exception { return SUCCESS; } 9public String input() throws Exception { return INPUT; } 10}
----validation.xml
lang
1<validators> 2<validator type="requiredstring"> 3<param name="fieldname">loginUserBean.userName</param> 4<message>Username is required.</message> 5</validator> 6<validator type="requiredstring"> 7<param name="fieldname">loginUserBean.password</param> 8<message>Password is required.</message> 9</validator>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。