教程: https://www.yiibai.com/struts_2/struts-2-updownselect-example.html
注意:Struts2.5.14.1版本必须先到Action再访问JSP页面哦!
页面效果:
提交后显示效果:
1>创建实体类
public class User {
private String uname;//用户名
private String upwd; //密码
private String truename;// 真实姓名
private String sex;// 性别
private String education;// 学历
private String province;// 省份
private String city;// 城市
private String favorite;// 爱好
private String fruit;// 喜欢吃的水果
private String language;// 编程语言
..............
}
2>控制器ListAction类
public class ListAction extends ActionSupport implements SessionAware {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
/**
* 跳转UI
*
* @return
* @throws Exception
*/
public String execute_ui() throws Exception {
return "ui";
}
/**
* 表单提交的数据
* @return
* @throws Exception
*/
public String execute_add() throws Exception {
System.out.println(user);
return "show";
}
3>JSP页面
<s:form action="ex_add.action" method="post">
<s:textfield name="user.uname" value="QQ" label="用户名" />
<s:password name="user.upwd" value="123456" label="密码"
showPassword="true" />
<s:textfield name="user.truename" label="真实姓名" />
<%-- <s:radio list="{'男','女'}" name="user.sex" label="性别" value="男" /> --%>
<!--如果需要默认值必须用map存放数据 -->
<s:radio list="#{'0':'男','1':'女'}" name="user.sex" label="性别" value="0" />
<s:select list="#{'高中':'高中','大学':'大学','硕士':'硕士','博士':'博士'}"
name="user.education" label="学历" />
<!-- 使用Map对象来生成doubleselect -->
<s:set var="pc"
value="#{'广东省':{'广州市','深圳市','珠海市','东莞市','中山市'},'江苏省':{'南京市','苏州市','扬州市' },'河南省':{'郑州市','洛阳市','开封市','南阳市'}}" />
<s:doubleselect doubleList="#pc[top]" list="#pc.keySet()"
doubleName="user.city" name="user.province" label="所在省份的城市" />
<%-- <s:checkboxlist list="{'编程','音乐','写技术博客','玩游戏'}" name="user.favorite"
label="爱好" /> --%>
<!--如果需要默认值必须用map存放数据 -->
<s:checkboxlist list="#{'1':'编程','2':'音乐','3':'写技术博客','4':'玩游戏'}" name="user.favorite"
label="爱好" value="{'1','2','4'}" />
<s:combobox list="{'苹果','香蕉','梨','草莓','西瓜','菠萝','芒果','橘子'}"
name="user.fruit" label="喜欢水果" />
<%-- <s:updownselect
list="#{'C语言':'C语言','Java':'Java','C#':'C#','c++':'c++','HTML':'HTML','R语言':'R语言'}"
name="user.language" label="编程语言" moveDownLabel="下移" moveUpLabel="上移" allowMoveUp="true" allowMoveDown="true"
selectAllLabel="全选" /> --%>
<s:updownselect
list="#{'C语言':'C语言','Java':'Java','C#':'C#','c++':'c++','HTML':'HTML','R语言':'R语言'}"
name="user.language" label="编程语言" headerKey="-1" headerValue="--请选择----" size="5"/>
<s:submit />
</s:form>
4>struts.xml配置文件
<!-- 包含另一个配置文件 -->
<constant name="struts.i18n.encoding" value="utf-8" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<!-- 启用静态方法访问 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true" />
<!-- 修改struts2主题 simple取消主题 -->
<!-- <constant name="struts.ui.theme" value="simple" /> -->
<package name="hlx" namespace="/" extends="struts-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="ex_*" class="com.hlx.action.ListAction" method="execute_{1}">
<result name="date">/index.jsp</result>
<result name="ui">/ui.jsp</result>
<result name="show">/show.jsp</result>
</action>
</package>
</struts>