struts2的select標簽中,常用的有以下幾個屬性:
(1)struts2中的select 標簽中,必須設置的屬性只有一個,即是list。
(2)select標簽的list中必須有值,不然會報錯。如果沒有值,可以加上headerKey, headerValue,這樣就可以通過了
其中,即使list中有值,我們也通常會加上headerKey, headerValue,即列表中顯示的第一個選項。注意,headerKey不可以為空,不可以為-1
(3)list屬性:通常是在action中定義的,必須是一個可以迭代的源,如為一個List, Map, Set等。如果是一個Map,那么map的key就對應於select標簽中的value,map中的value就對應於select標簽中的option。而如果是一個List或者是一個Set,那么可以通過listKey和listValue指定。
(4)listKey和listValue:listKey即對應於select標簽中的value, listValue即對應於select標簽中的option。
(5)name屬性:即是表單中select的名稱。
<!----------------------轉載結束---------------------------------------------------->
1.頁面程序
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>student select list</title>
</head>
<body>
<s:form name="form1" action="stuValueselectActionTest">
<s:select
label="選擇學生"
list="liststu"
name="selectStudent"
listKey="userid"
listValue="username"
emptyOption="false"
value="3" //這里的value值對應於listKey中的userid,即為默認值,從數據庫中取到某學生的值,賦予value即可
/>
<s:submit/>
</s:form>
</body>
</html>
2. 學生信息基礎類 (StudentListTest.java),填充至list中.
package com.shangyu.bean;
public class StudentListTest {
private String username;
private int userid;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
3.后台程序賦值給list傳回前台頁面 (StudentSelectActionTest.java)
package com.shangyu.action;
import com.opensymphony.xwork2.ActionSupport;
import com.shangyu.bean.*;
import java.util.*;
public class StudentSelectActionTest extends ActionSupport{
private List liststu;
public List getListstu() {
return liststu;
}
public void setListstu(List liststu) {
this.liststu = liststu;
}
public String execute()
{
List liststu=new ArrayList<StudentListTest>();
StudentListTest stutest=new StudentListTest();
stutest.setUserid(1);
stutest.setUsername("蕭峰");
liststu.add(stutest);
stutest=null;
stutest=new StudentListTest();
stutest.setUserid(2);
stutest.setUsername("虛竹");
liststu.add(stutest);
stutest=null;
stutest=new StudentListTest();
stutest.setUserid(3);
stutest.setUsername("段譽");
liststu.add(stutest);
setListstu(liststu);
return SUCCESS;
}
}
4.取值測試的程序(stuValueselectActionTest.java)
package com.shangyu.action;
import com.opensymphony.xwork2.ActionSupport;
public class stuValueselectActionTest extends ActionSupport{
private String selectStudent;
public String getSelectStudent() {
return selectStudent;
}
public void setSelectStudent(String selectStudent) {
this.selectStudent = selectStudent;
}
public String execute()
{
System.out.println(getSelectStudent()); //打印出選擇的值
return SUCCESS;
}
}
5. 配置xml
<action name="studentSelectTest" class="com.shangyu.action.StudentSelectActionTest">
<result name="error">/error.jsp</result>
<result name="success">/studentSelectTest.jsp</result>
</action>
<action name="stuValueselectActionTest" class="com.shangyu.action.stuValueselectActionTest">
<result name="error">/error.jsp</result>
<result name="success">/xx.jsp</result>
</action>