まず、単純なテーマを使用しますが、それがなくても同じ動作が発生します (ページの書式設定を除く)。フォームを送信すると、名前フィールドが空になり、検証エラーを表示せずに register.jsp にリダイレクトされます。ログまたはデバッガーを確認した後、検証が正しく機能しているようで、サーバー ログ メッセージが期待どおりに書き込まれます。一般的なコードを投稿します。
struts.properties
struts.ui.theme=simple
マイアクション
private User user = new User() // getter and setter
@Inject
transient UserDAO userDAO;
@Override
public User getModel() {
return user;
}
public void validate(){
LOG.debug("NAME VALIDATION " + user.getName());
if("".equals(user.getName())){
addFieldError("user.name", "Name can't be empty");
LOG.debug("Validation Error on name");
}
}
デバッガーで確認すると、検証メソッドが機能しており、ログが書き込まれています。
struts.xml
<package name="users" extends="struts-default">
<action name="registerUser" method="prepareRegister" class="com.test.MyAction">
<result name="success">/register.jsp</result>
</action>
<action name="saveOrUpdateUser" method="saveOrUpdate" class="com.test.MyAction">
<result name="input" type="redirect">registerUser</result>
<result name="success" type="redirect">listUser</result>
</action>
</package>
register.jsp
<td>
<s:textfield id = "userName"
label = "User Name"
name = "user.name" />
</td>
<s:fielderror fieldName = "user.name" />
ご不明な点がございましたら、お気軽にお問い合わせください。私はstruts 2にかなり慣れていないので、struts 2のドキュメント検証方法を試し、他のチュートリアルもチェックしました。ロジックが機能していて、ビュー パーツ (jsp) が機能していないため、何かが欠けているのか、気付いていない設定ミスがあるのか わかりません。前もって感謝します。