前提
struts-validationを使用して入力チェックを行おうと考えています。
その際、画面で押下したボタンによってチェックする項目を制御できないかと考えています。
たとえば、画面に入力項目①と②、ボタン①と②があったとして、ボタン①を押した際は入力項目①をチェックする。
ボタン②を押した際は入力項目②をチェックするみたいな感じです。
実現したいこと
struts-validationを使用して、ボタンによる入力項目のチェック制御を行いたい
試したこと
画面の入力項目すべてに対してvalidationでチェックが行われることは確認済み
ソース
sample.jsp
1<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ page language="java" %> 3<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 4<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> 5 6<html:html> 7 <head> 8 <title>入力フォーム</title> 9 </head> 10 <body> 11 <html:form action="sampleAction"> 12 <html:errors/> 13 <html:text property="input1" size="10" maxlength="7"/> 14 <html:submit property="submut1" value="送信" /> 15 <br> 16 <html:text property="input2" size="10" maxlength="7"/> 17 <html:submit property="submut2" value="送信" /> 18 </html:form> 19 </body> 20</html:html>
validation.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE form-validation PUBLIC 3 "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" 4 "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> 5<form-validation> 6 <formset> 7 <form name="SampleForm"> 8 <field property="input1" depends="integer"> 9 <arg key="入力欄1" resource="false"/> 10 </field> 11 <field property="input2" depends="integer"> 12 <arg key="入力欄2" resource="false"/> 13 </field> 14 </form> 15 </formset> 16</form-validation>
struts_config.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE struts-config PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 4 "http://struts.apache.org/dtds/struts-config_1_2.dtd"> 5 6<struts-config> 7 8 <form-beans> 9 <form-bean name="SZ01S001Form" type="sample.SZ01S001Form"/> 10 <form-bean name="SampleForm" type="sample.SampleForm"/> 11 </form-beans> 12 13 <global-exceptions/> 14 <global-forwards/> 15 16 <action-mappings> 17 18 <action name="SampleForm" 19 path="/sampleAction" scope="request" 20 type="sample.loginAction" 21 input="/jsp/sample.jsp" 22 validate="true"> 23 <forward name="homeAction" path="/jsp/home.jsp"/> 24 </action> 25 </action-mappings> 26 27</struts-config> 28
sampleForm.java
1package sample; 2 3public class SampleForm { 4 private String input1; 5 6 private String input2; 7 8 public String getInput1() { 9 return input1; 10 } 11 12 public void setInput1(String input1) { 13 this.input1 = input1; 14 } 15 16 public String getInput2() { 17 return input2; 18 } 19 20 public void setInput2(String input2) { 21 this.input2 = input2; 22 } 23 24} 25
補足情報(FW/ツールのバージョンなど)
・windows10
・Eclipce
・Java 8
・Tomcat v8.0
・struts 1.2.9 (struts2でも可)
あなたの回答
tips
プレビュー