2 つのフォーム (ログイン フォームと登録フォーム) を持つビューがあります。これで、検証に検証プラグインを使用しました。両方のフォームには、異なるアクションとフォーム Bean があります。ただし、各フォーム Bean には同じフィールド名、つまり userName と password があります。バリデータによってエラー メッセージが生成されると、両方のフォームにエラーが出力されるようになりました。エラーメッセージのバリデーターのキーをフィールド名から別のものに変更するにはどうすればよいですか。他の提案や解決策も歓迎します。事前にサンクス。
index.jsp
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<div align="right" style="padding-right: 5%;">
<html:form action="/login" styleClass="form-inline">
<bean:message key="label.login.username"/><html:text property="userName" name="LoginForm"/>
<bean:message key="label.login.password"/><html:password property="password" name="LoginForm" />
<html:submit value="Login" styleClass="btn btn-primary" />
</html:form>
<p class="text-error"><html:errors property="userName"/></p>
<p class="text-error"><html:errors property="password"/></p>
<p class="text-error"><html:errors property="invalidLogin"/><p>
</div>
<div style="padding-left: 5%;">
<div>
<b>Register</b>
<html:form styleClass="form-horizontal" action="register">
<div class="control-group">
<label class="control-label">Name</label>
<div class="controls">
<html:text property="name" name="UserForm" /><p class="text-error"><html:errors property="name"/></p>
</div>
</div>
<div class="control-group">
<label class="control-label">UserName</label>
<div class="controls">
<html:text property="userName" name="UserForm" /><p class="text-error"><html:errors property="userName"/></p>
</div>
</div>
<div class="control-group">
<label class="control-label">Password</label>
<div class="controls">
<html:password property="password" name="UserForm" /><p class="text-error"><html:errors property="password"/></p>
</div>
</div>
<div class="control-group">
<div class="controls">
<html:submit value="Register" styleClass="btn btn-primary"/>
</div>
</div>
</html:form>
<html:errors property="name"/>
<p class="text-error"><html:errors property="registerFail"/></p>
<p class="text-success"><html:messages id="null" property="registerSuccess"/></p>
</div>
</div>
バリデータユーザー.xml
<formset>
<form name="UserForm">
<field property="name" depends="required,minlength">
<msg name="required" key="error.msg.namerequired" />
<msg name="minlength" key="error.msg.minlen" />
<arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>
<field property="userName" depends="required,minlength">
<msg name="required" key="error.msg.usernamerequired" />
<msg name="minlength" key="error.msg.minlen" />
<arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>
<field property="password" depends="required,minlength">
<msg name="required" key="error.msg.passwordrequired" />
<msg name="minlength" key="error.msg.minlen" />
<arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>3</var-value>
</var>
</field>
</form>
</formset>
<formset>
<form name="LoginForm">
<field property="userName" depends="required" >
<msg name="required" key="error.msg.usernamerequired"/>
</field>
<field property="password" depends="required">
<msg name="required" key="error.msg.passwordrequired"/>
</field>
</form>
</formset>
struts-config.xml
<form-beans>
<form-bean name="UserForm" type="com.sumit.form.UserForm"/>
<form-bean name="LoginForm" type="com.sumit.form.LoginForm"/>
</form-beans>
<action-mappings>
<action name="UserForm" input="/index.jsp" path="/register" scope="session" type="com.sumit.action.RegisterAction" validate="true">
<forward name="success" path="/index.jsp"/>
<forward name="fail" path="/index.jsp"/>
</action>
<action name="LoginForm" input="/index.jsp" path="/login" scope="session" type="com.sumit.action.LoginAction" validate="true">
<forward name="success" path="/home.jsp"/>
<forward name="fail" path="/index.jsp"/>
</action>
</action-mappings>