Struts2 在struts 2中获取所选项目文本
我有一个ui标签选择Struts2 在struts 2中获取所选项目文本,struts2,Struts2,我有一个ui标签选择 <s:select list="studentList" name="selectedstudent" listKey="studentID" listValue="studentName" headerKey="0" headerValue="--All Student--" theme="simple"></s:select> 在java代码中,我选择了student returns,比如说4,如何在java中获取学生的姓名。
<s:select list="studentList" name="selectedstudent" listKey="studentID"
listValue="studentName" headerKey="0"
headerValue="--All Student--" theme="simple"></s:select>
在java代码中,我选择了student returns,比如说4,如何在java中获取学生的姓名。您可以在selectedstudent中通过id获取姓名。为此,若您的操作中并没有学生列表,那个么应该从数据库中加载他们。否则,如果为对象提供getter,则按id搜索学生对象将返回名称。请记住,您已经将listValue指定为studentName。该值应取自学生,因此列表也应为列表 如果您的学生列表正在会话中,您可以检索学生姓名,如下所示。您的代码可能不同:
List<Student> studentList = (List<Student>)ActionContext.getContext().getSession().get("studentList");
//You should ovveride equals(and hashCode) to point the Student equality to studentID
//You should also check if studentList.indexOf(selectedstudent) != -1
Student student = studentList.get(studentList.indexOf(selectedstudent));
String studentName = student.getStudentName();
业务层
Student.java模型
public class Student {
//Getter and Setter Method.
private String id;
private String name;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
}
struts.xml
<action name="list_action" class="controller.ListAction">
<result name="success">struts_select.jsp</result>
</action>
包装控制器
ListAction.java
private List<Student> student_list = new ArrayList<Student>();//Getter and Setter
@Override
public String execute() throws Exception {
//do your stuff
//list collect from database.
student_list=(List<Student>) criteria.list();
}
struts_select.jsp
<s:select label="Student List"
listKey="id" //use your Student.java member variable of id signature
listValue="name" //use your Student.java member variable of name signature
headerKey="0" headerValue="Select student Name"
list="s"
name="student_info" />
那么,您只需要名称还是id和名称?两者都需要,目前为止,我只能通过从db、session、anywhere重新加载idRepopulate studentList来获取它,然后在所选索引处获取对象。您不能使用一些js或解析字符串同时提交w/o。提交id并在类中从某处获取名称。@AleksandrM然后在js中选择更改时,我将文本设置为隐藏字段,并在java中获取该字段值