在动作类中获取<s:select>的值</s:select>

时间:2013-04-24 16:46:05

标签: java jsp struts2 combobox action

我想用JSP在JSP中创建组合框。我的JSP页面是:

<s:form id="form-sign-up" class="round styled" action="signUp" method="post" name="myForm" theme="xhtml" enctype="multipart/form-data">
    <label>Email:</label><input type="text" class="keyup-email text-input" name="7" value="" />
    <br />
    <br />
    <s:textfield name="fname" size="40" maxlength="40" required="true" key="your.FName-label"/>
    <s:textfield name="lname" size="40" maxlength="40" required="true" key="your.LName-label"/>
    <br />
    <s:set var="gender" value="{'male','female'}" />
    <s:select label="gender" name="gender"
              accesskey="" headerKey="-1" headerValue="I'm..." 
              cssClass="" list="gender"/>
    <br />          
    <s:password name="Pass" size="40" maxlength="40" required="true" key="your.Pass-label"/>
    <s:textarea name="job" label="Job" id="job" cols="32" rows="3" />
    <s:submit value="Submit" id="btn-submit" align="left"/>
</s:form>

现在我的行​​动中有:

public class SignUpAction  extends ActionSupport {

private String fname;
private String lname;
private String gender;
private String email;
private String pass;
private String job;
public static DataBase db ;

 @Override
public void validate(){
}

@Override
public String execute() throws Exception {

    DataBase db = new DataBase();
    try {
        User u1 = new User(fname,lname,gender,email,pass,job);
        db.Add_User(u1);

     } catch ( HibernateException e ) {
            e.printStackTrace();

    }

    return SUCCESS;
}
... Getters and setters ...     
}

我希望获得性别的价值并将其值保存在我的数据库中,但我无法从JSP获得<s:select...的值。

1 个答案:

答案 0 :(得分:0)

您无法获取类型错误的列表值。要选择选项值,您需要列表

List<String> gender;

将您需要的值放入

String yourGender;

并使用属性名称

命名select标记
<s:select name="yourGender" list="gender"

确保定义了getter和setter,并且在提交后如果引用默认堆栈,则yourGender将设置为您的操作。该值取决于选择。因此,您可以自由选择持久性框架或原始JDBC来将值保存到数据库中。