![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
struts validator にて検証チェックを行いたく作成をしましたが、上記のエラーが出てしまいました。
エラーは以下のようになっています
org.apache.commons.validator.ValidatorException: No such validation method: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionMessages, javax.servlet.http.HttpServletRequest)
at org.apache.commons.validator.ValidatorAction.loadValidationMethod
ちなみにstrutsconfigは以下の通りとなっております。
<form-beans>
<form-bean name="userRegistForm" type="blog.userRegistForm">
<form-property name="login_name" type="java.lang.String"/>
<form-property name="nick_name" type="java.lang.String"/>
<form-property name="email" type="java.lang.String"/>
</form-bean>
</form-beans>
<action-mappings>
<action path="/userRegist"
type="blog.userRegistAction"
name= "userRegistForm"
input="/userRegist.jsp"
scope="session"
validate="true">
<forward name="success" path="/register_2.jsp" />
</action>
jspの画面からlogin_name、nick_name、emailの入力欄を空欄のまま登録ボタンを押すと、userRegistFormに値がセットされた後、blog.userRegistAction.doに画面が遷移します(なにも表示されません)
また、validation.xmlは以下の通りとなっております。
~中略~
<form-validation>
<formset>
<form name="userRegistForm">
<field property="login_name"
depends="required">
<msg name="required" key="errors.empty" />
<arg name="required" key="string.login_name" position="0"/>
</field>
<field property="nick_name" depends="required">
<msg name="required" key="errors.empty"/>
<arg name="required" key="string.nick_name" position="0"/>
</field>
<field property="email" depends="required,email">
<msg name="required" key="errors.empty"/>
<arg name="required" key="string.email" position="0"/>
<msg name="email" key="errors.email"/>
<arg name="email" key="item.id" position="0"/>
</field>
</form>
</formset>
</form-validation>
また、userRegistFormは以下の通りとなっております。
private String login_name;
private String nick_name;
private String email;
public userRegistForm()
{
login_name=null;
nick_name=null;
email=null;
}
public String getLogin_name() {
return login_name;
}
public void setLogin_name(String loginName) {
login_name = loginName;
}
public String getNick_name() {
return nick_name;
}
public void setNick_name(String nickName) {
nick_name = nickName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
となっておりますが、エラーの原因がよくわかりません。
ご教授の程よろしくお願い申し上げます。
A 回答 (3件)
- 最新から表示
- 回答順に表示
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?5a7ff87)
No.3
- 回答日時:
>org.apache.commons.validator.ValidatorException: No such validation method: >org.apache.struts.validator.FieldChecks.validateRequired(・・・
validateRequiredメソッドがないといっているので、
validator-rules.xmlにvalidateRequiredの記述が抜けているのではないでしょうか?
エラーではvalidateEmailについて触れていません。
No.2
- 回答日時:
バージョンが書かれていないのでわかりませんが・・・
(システムの構築が最近の事であればまずありえない事だとは思いますが)
strutsのあるバージョンからFieldChecksのシグネチャ変更されて(引数が1個増えて)、
それ以前に構築したシステムだと、その更新の影響で設定ファイルを手動で対応してやる必要があったと記憶しています。
(バージョンいくつからかは失念しましたが・・・)
もし今回の問題の発生に前後してstrutsのバージョンアップをされていたのであれば、
その辺りを確認されてみてはいかがでしょうか。
結構昔の事なので細かい事はよく覚えておらず、申し訳ありません。
解決の糸口となれば幸いです。
回答ありがとうございます
validator-rule.xmlを割と新めのものと取り換えたら、エラーがなくなりました
ありがとうございました
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?5a7ff87)
No.1
- 回答日時:
・Validationを適用するActionFormはValidatorFormを継承してください。
・validator-rules.xmlは?
・struts-configにvalidation.xmlとcalidator-rules.xmlを指定していないよ。
とりあえず気づいたところを挙げてみました。
validationに必要な設定・ファイルをもう一度一から確認したほうが良いかもしれませんね。
参考URL:http://www.javaroad.jp/opensource/js_struts19.htm
回答ありがとうございます
Validationを適用するActionFormはValidatorFormを継承してください
→import org.apache.struts.validator.ValidatorForm;
public class userRegistForm extends ValidatorForm {と継承しています
validator-rules.xmlは?
→WEB-INFの下にあります。
<validator name="email"
classname="org.apache.struts.validator.FieldChecks"
method="validateEmail"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionMessages,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.email"/>
と確かに記入されております
struts-configにvalidation.xmlとcalidator-rules.xmlを指定していないよ。
→<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
と入力されておりました。
原因と思われるところのご指摘をよろしくお願い申し上げます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オブジェクトの中のプロパティ...
-
JSPでDBからデータ読み込みブラ...
-
1ページに10件ずつ表示したい
-
StrutsでJSPからListを受け取り...
-
Java Struts ~に対するゲッタ...
-
<s:iterator>の値をリストで取...
-
全取得したデータをjspで順番に...
-
JSPでImportエラーになります
-
PropertyNotFoundException解決...
-
データベースに変数の値を挿入
-
【struts】 ActionFormで別のAc...
-
JSFタグ<h:dataTable>でヘッダ...
-
ログイン画面
-
WebWork(struts2)でのパラメー...
-
StrutsのforEachについて
-
Enumのname()とtoString()の違...
-
hiddenの値が期待した値で取得...
-
JSPからServletに、テーブルに...
-
【Struts】bean:writeタグのpro...
-
入力チェックとエラーメッセー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
オブジェクトの中のプロパティ...
-
JSPでImportエラーになります
-
JSPにて、変数を利用してフォン...
-
JSPでDBからデータ読み込みブラ...
-
StrutsでJSPからListを受け取り...
-
hiddenの値が期待した値で取得...
-
PropertyNotFoundException解決...
-
入力チェックとエラーメッセー...
-
requestの値が削除されません…
-
全取得したデータをjspで順番に...
-
Java Struts ~に対するゲッタ...
-
JSPからServletに、テーブルに...
-
<s:iterator>の値をリストで取...
-
データベースに変数の値を挿入
-
1ページに10件ずつ表示したい
-
iterateで受け取った値を処理に...
-
【Struts】bean:writeタグのpro...
-
enumでの要素番号から要素名の...
-
サーブレットjspで勤怠スケジュ...
-
JSP DB 表示
おすすめ情報