ドロップダウン リストで選択した値をデータベースに保存したい。
最初index.jsp
に読み込まれます。の登録URLをクリックすると、からindex.jsp
、に行くことができます。register.jsp
index.jsp
struts.xml
:
<action name="registerAction" class="action.RegisterAction" method="populateSelect">
<result name="success" >register.jsp</result>
</action>
<action name="register" class="action.RegisterAction" method="execute">
<result name="success" >login.jsp</result>
</action>
index.jsp
:
<s:url id="url" action="registerAction">
</s:url>
<s:a href="%{url}">Register</s:a>
register.jsp
:
<s:form action="registerAction" method="execute">
<s:select label="Select Date of Month" key="Month List" name="months" headerKey="0" headerValue="--Select--" list="allMonths" listKey="id" listValue="name"/>
<s:submit value="Register"/>
</s:form>
アクション クラスは次のとおりです。
public class RegisterAction extends ActionSupport {
String name, pwd, email, address, months;
int phno;
List<Month> allMonths = new ArrayList<Month>();
List<User> users = new ArrayList<User>();
UserDao udao = new UserDao();
public List<Month> getAllMonths() {
return allMonths;
}
public void setAllMonths(List<Month> allMonths) {
this.allMonths = allMonths;
}
public String getMonths() {
return months;
}
public void setMonths(String months) {
this.months = months;
}
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPhno() {
return phno;
}
public void setPhno(int phno) {
this.phno = phno;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public RegisterAction() {
}
public String execute() throws Exception {
User u = new User();
u.setName(name);
u.setEmail(email);
u.setAddress(address);
u.setPhno(phno);
u.setPwd(pwd);
System.out.println("Hi der "+months);
u.setMonths(months);
udao.addUser(u);
return "success";
}
public String listAllUsers() {
users = udao.getUsers();
System.out.println("In Action, " + users);
return "success";
}
public String populateSelect() {
allMonths = udao.getMonths();
System.out.println("In constructor " + allMonths);
return "success";
}
}
ドロップダウン リストは、実際にはフォーム フィールドの 1 つにすぎません。フォームには他のフィールドもあります。
月フィールド以外のすべての値をデータベースに入力できます。月フィールドの場合、入力される値は ですnull
。
ドロップダウンの値が取られていないと思います。