使用struts2标签,必须在jsp页面中导入
<%@ taglib prefix="s" uri="/struts-tags" %>
一、struts2的表单标签
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 使用action的form表单标签,下面的action不需要书写项目的虚拟路径,如果不想使用struts2自带模板,可以设置theme="simple",此时lable属性将不再起作用 -->
<s:form action="user_login.action" method="post" theme="simple">
用户名:<s:textfield name="userName" label="用户名"/><br/>
密码:<s:password name="userPwd" label="密码"/><br/>
个人介绍:<s:textarea cols="20" rows="4" name="userDesc" label="个人介绍"/><br/>
<!-- headerKey和listKey是要传递到后台的值,headerValue和listValue是显示在页面的值,以下方式书写,listKey即为1,2,3.listValue的值则为啊啊,哦哦,嗯嗯 ,multiple指该列表框是否允许多选,默认false-->
下拉选择:<s:select list="#{1:'啊啊',2:'哦哦',3:'嗯嗯' }" headerKey="0" headerValue="--请选择--" title="标题" listKey="key" listValue="value" name="realationName"/><br/>
<!-- 如下下拉列表意为:在request域或者action中存放一个users的list集合,从后台取出后在页面的下拉列表中展示用户名,后台接受用户id作为参数 -->
<%-- <s:select list="users" headerKey="0" headerValue="请选择用户" listKey="userId" listValue="userName"/> --%>
<!--s:checkbox标签lable:设置显示的字符串,name:设置表单元素的名字,value:该复选框是否被默认选中,value的值为true或者大于0的数字,则该复选框被选中,若为false或者0,则该复选框不被选中 -->
吸烟:<s:checkbox label="吸烟" name="smoke" value="4"/>喝酒<s:checkbox label="喝酒" name="drink" value="0"/><br/>
<!--s:checkboxlist一次创建多个复选框,name相同,在action中使用字符串fruit接收时,若选中两项,则会以,相连,例如选中西瓜和苹果,则fruit接收字符串为:西瓜,苹果 -->
一次创建多个复选框:<s:checkboxlist list="{'西瓜','苹果','橘子'}" name="fruit"/><br/>
<!--s:combobox标签生成一个单行文本框和一个下拉列表框的组合,两个表单元素对应一个请求,单行文本框中的值对应请求参数,下拉列表框只是起到辅助作用,list指定集合生成下拉列表项,可以使用list或者map -->
中国城市:<s:combobox label="中国城市" list="{'北京','上海','广州'}" readonly="true" name="city" headerKey="0" headerValue="--请选择城市--"/><br/>
<!--s:doubleselect标签生成一个相互关联的列表框,在第一个列表框中选择某一项后,第二个列表框中将自动为其选择相关信息
headerValue:列表框中显示的值
headerKey:用于后台接受的数据
doubleName:指定第二个下拉列表框的名称
list:指定第一个下拉列表框中选项的集合
doubleList:指定第二个下拉列表框中的选项集合
top:指定第一列表框
name:第一个下拉列表框的名称
action中可以通过name和doubleName属性值接收前台传入值
-->
<s:doubleselect headerKey="0" headerValue="--请选择--" doubleList="top=='城市'?{'北京','上海','广州','重庆'}:{'香蕉','栗子','西瓜','苹果'}" list="{'城市','水果'}" doubleName="second" name="first"/><br/>
<!-- 使用file上传文件时需要在form标签中设置 enctype="multipart/form-data" -->
文件上传:<s:file name="myfile"/><br/>
<!-- 使用和s:select有些相似,使用map需要加#,使用list则不需要 -->
性别:<s:radio list="#{1:'男',0:'女'}" name="sex" listKey="key" listValue="value"/><br/>
<!--s:token 防止用户多次提交表单,避免恶意刷新页面 -->
<s:token/><br/>
<br/>
<!--s:optiontransferselect 创建两个选项框以及转移项,该标签会自动生成两个下拉列表框,同时生成相关按钮
addAllToLeftLabel:设置实现全部左移动功能按钮上的文本
addAllToRightLabel:设置实现全部右移动功能按钮上的文本
addToLeftLabel:设置实现左移动功能按钮上的文本
addToRightLabel:设置实现右移动功能按钮上的文本
allowAddAllToLeft:设置全部左移动功能的按钮
allowAddAllToRight:设置全部右移动功能的按钮
allowAddToLeft:设置左移动按钮的功能
allowAddToRight:设置右移动按钮的功能
leftTitle:设置左边列表框的标题
rightTitle:设置右边列表框的标题
allowSelectAll:设置全部选择功能的按钮
selectAllLabel:设置全部选择功能按钮上的文本
multiple:设置第一个列表框是否多选,默认是true
doubleName:设置第二个列表框的名字
doubleList:设置第二个列表框的集合
doubleMultiple:设置第二个列表框是否允许多选,默认是true
-->
<s:optiontransferselect name="left" list="{'北京','上海','广州','重庆','天津','唐山'}"
leftTitle="国内" rightTitle="国外" doubleName="right" multiple="true" doubleMultiple="true"
headerKey="0" headerValue="--请选择--" doubleList="{'纽约','巴黎','伦敦','柏林'}"/>
<!--s:updownselect在页面中生成一个下拉列表框,可以在选项内容中上下移动
allowMoveDown:设置上移功能按钮,默认为true,即显示该按钮
allowMoveUp:设置下移功能按钮,默认为true,即显示该按钮
allowSelectAll:设置全选功能按钮,默认为true,即显示该按钮
moveDownLabel:设置下移功能按钮上的文本,默认为V
moveUpLabel:设置上移功能按钮上的文本,默认为^
selectAllLabel:设置全选功能按钮上的文本,默认为*
--><br/><br/>
<!--未通过验证-->
<s:updownselect name="city" list="{'北京','上海','广州','深圳','郑州','洛阳'}" allowMoveDown="true" headerKey="0" headerValue="--请选择--"
selectAllLabel="全选" moveUpLabel="上移" moveDownLabel="下移" allowMoveUp="true"></s:updownselect>
<s:submit value="提交"/>
</s:form>
</body>
</html>
运行结果:
二、struts2非表单标签
<s:a href="user_login.action">登录</s:a>
<s:actionerror/><br/>
<s:actionmessage/><br/>
<s:fielderror/><br/>