您的位置:首页 > 编程语言 > Java开发

【Struts2六】ui标签之form标签及数据回显

2015-07-16 10:22 453 查看
ui标签:用在jsp页面用于回显数据的标签,这些标签是由框架定义的,用来替代原生的标签!
ui标签有:

<s:textfield name="xxx"></s:textfield>
<s:password name="xxx" showPassword="trus"></s:password>
<s:select name="xxx" list="xx" listKey=..  listValue=..  headerValue=..><s/select>
<s:checkboxlist list= "#pList" name="pid"  listKey="pid"  listValue="pname" ></s:checkboxlist>
需要回显的数据要放在valueStack中,可以放在map栈中,也可以放在对象栈中;

放对象栈中有两种情况:
一是将数据封装成bean,将bean放在对象栈中;
二是给action设置属性,action的属性就在对象栈中;

1.Action中放入数据:

 public class UIAction extends ActionSupport{
[align=left]     private String username;[/align]
[align=left]     private String password;[/align]
     public String
getUsername() {
[align=left]           return username ;[/align]
[align=left]     }[/align]
[align=left]
[/align]
     public void setUsername(String
username) {
           this.username =
username;
[align=left]     }[/align]
[align=left]
[/align]
     public String
getPassword() {
[align=left]           return password ;[/align]
[align=left]     }[/align]
[align=left]
[/align]
     public void setPassword(String
password) {
           this.password =
password;
[align=left]     }[/align]
[align=left]     /**[/align]
[align=left]      * 1.在表单中回显数据:数据位于对象栈中,直接根据表单元素的name数据就可以回显![/align]
[align=left]      *        用户名:<s:textfield name="username"></s:textfield><br/>[/align]
[align=left]              密码:<s:password name="password" showPassword="true"></s:password><br/>[/align]
[align=left]      * @return[/align]
[align=left]      */[/align]
     public String
showDataFromObjStack(){
[align=left]          User user = new User();[/align]
[align=left]          user.setPassword( "aaa");[/align]
[align=left]          user.setUsername( "bbb");[/align]
[align=left]          ActionContext. getContext().getValueStack().push(user);[/align]
[align=left]           return "user_objstack" ;[/align]
[align=left]     }[/align]
[align=left]     /**[/align]
[align=left]      * 从map栈中回显数据,s:textfield的value属性不能直接跟 ognl表达式,所以需要加%{ ognl表达式}[/align]
[align=left]      *[/align]
[align=left]      *        用户名:<s:textfield name=" username" value="%{#user.username}"></s:textfield><br/>[/align]
[align=left]              密码:  <s:password name="password" showPassword="true" value="%{#user.password}"></s:password><br/>[/align]
[align=left]      * @return[/align]
[align=left]      *[/align]
[align=left]      */[/align]
     public String
showDataFromMap(){
[align=left]          User user = new User();[/align]
[align=left]          user.setPassword( "111");[/align]
[align=left]          user.setUsername( "zhangsan");[/align]
          ActionContext. getContext().put("user",
user);
[align=left]           return "user_map" ;[/align]
[align=left]     }[/align]
[align=left]     /**[/align]
[align=left]      * Action中的属性位于对象栈中,在回显时可以直接使用value来回显:[/align]
[align=left]      *        用户名:<s:textfield name="username"></s:textfield><br/>[/align]
[align=left]              密码:  <s:password name="password" showPassword="true" ></s:password><br/>[/align]
[align=left]      * @return[/align]
[align=left]      */[/align]
     public String
showDataFromActionProperty(){
[align=left]           this.username = "lisi" ;[/align]
[align=left]           this.password = "asfd" ;[/align]
[align=left]           return "user_actionproperty" ;[/align]
[align=left]     }[/align]
[align=left]     [/align]
[align=left]     /**[/align]
[align=left]      * 使用s:select标签来显示下拉选择框,必须有list属性;[/align]
      * jsp:选择省份:<s:select name=" pid"
list="#pList" listKey="pid" listValue="pname" headerKey="" headerValue="请选择省份"></s:sele
16050
ct> <br/>
[align=left]      * 翻译后的代码:[/align]
[align=left]      *  选择省份:[/align]
[align=left]              <select id="uiAction_form_action_pid" name="pid">[/align]
[align=left]                   <option value="">请选择省份 </option>[/align]
[align=left]                   <option value="1">北京市 </option>[/align]
[align=left]                   <option value="2">上海市 </option>[/align]
[align=left]                   <option value="3">重庆市 </option>[/align]
[align=left]               </select>[/align]
[align=left]      * @return[/align]
[align=left]      */[/align]
     public String
putDataToSelect(){
[align=left]          List<Privice> pList = new ArrayList<Privice>();[/align]
[align=left]          Privice privice1 = new Privice();[/align]
[align=left]          privice1.setPid(1L);[/align]
[align=left]          privice1.setPname( "北京市");[/align]
[align=left]          [/align]
[align=left]          Privice privice2 = new Privice();[/align]
[align=left]          privice2.setPid(2L);[/align]
[align=left]          privice2.setPname( "上海市");[/align]
[align=left]          [/align]
[align=left]          Privice privice3 = new Privice();[/align]
[align=left]          privice3.setPid(3L);[/align]
[align=left]          privice3.setPname( "重庆市");[/align]
[align=left]          [/align]
[align=left]          pList.add(privice1);[/align]
[align=left]          pList.add(privice2);[/align]
[align=left]          pList.add(privice3);[/align]
[align=left]          [/align]
[align=left]           //放在map栈中;[/align]
          ActionContext. getContext().put("pList",
pList);
[align=left]          [/align]
[align=left]           return "select_map" ;[/align]
[align=left]     }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]2.配置文件:struts-ui.xml:[/align]

[align=left]<?xml version= "1.0" encoding ="UTF-8" ?>[/align]
[align=left]<!DOCTYPE struts PUBLIC[/align]
    "-//Apache
Software Foundation//DTD Struts Configuration 2.0//EN"
[align=left]    "http://struts.apache.org/dtds/struts-2.0.dtd">[/align]
[align=left]<struts>[/align]
[align=left]     <package name="ui"  namespace="/" extends="struts-default" >[/align]
[align=left]           <action name= "uiAction_*" method ="{1}" class="cn.itheima03.struts2.ui.UIAction" >[/align]
[align=left]               <result name="user_objstack" >ui/ui.jsp</ result>[/align]
[align=left]               <result name= "user_map">ui/ui.jsp </result>[/align]
[align=left]               <result name="user_actionproperty" >ui/ui.jsp</ result>[/align]
[align=left]               <result name="select_map" >ui/ui.jsp</ result>[/align]
[align=left]           </action>[/align]
[align=left]     </package >[/align]
[align=left]</struts>[/align]
[align=left]
[/align]
[align=left]2.jsp页面利用struts标签回显数据:[/align]
[align=left]   在jsp页面引用ui标签时,要加上:[/align]

[align=left]<%@ taglib uri="/struts-tags" prefix="s"%>[/align]

[align=left][/align]
[align=left][/align]

[align=left]<%@ page language="java" import= "java.util.*" pageEncoding="UTF-8" %>[/align]
[align=left]<%@ taglib uri="/struts-tags" prefix= "s"%>[/align]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN">
[align=left]<html>[/align]
[align=left]  <body >[/align]
[align=left]           <s:form action= "uiAction_form.action">[/align]
[align=left]               <!--[/align]
[align=left]                   cssClass相当于 html标签中的class[/align]
[align=left]               -->[/align]
[align=left]              [/align]
[align=left]              用户名: <s:textfield name="username" ></s:textfield>< br/>[/align]
[align=left]              密码:  <s:password name= "password" showPassword="true" ></s:password ><br/>[/align]
[align=left]               <!--[/align]
[align=left]                   list是select填充数据的来源[/align]
[align=left]                   list后面能直接跟 ognl表达式[/align]
[align=left]                   listKey是option中value的值[/align]
[align=left]                   listValue是要显示的值[/align]
[align=left]                   headerValue顶部要显示的内容[/align]
[align=left]               -->[/align]
[align=left]              [/align]
               <!-- s:select标签
-->
[align=left]              选择省份: <s:select name= "pid" list="#pList" listKey="pid" listValue="pname" headerKey="" headerValue= "请选择省份" ></s:select>< br/>[/align]
[align=left]              [/align]
               <!-- checkboxlist 标签
-->
[align=left]              省份: <s:checkboxlist list= "#pList" name="pid" listKey="pid" listValue="pname" ></s:checkboxlist>[/align]
[align=left]           </s:form>[/align]
[align=left]  </body >[/align]
[align=left]</html>[/align]

[align=left]
[/align]
[align=left]效果图:[/align]
[align=left][/align]
[align=left]
[/align]
[align=left]翻译过后的源代码:[/align]

[align=left]<body>[/align]

<form id="uiAction_form_action" method="post" action="/itheima03_struts2/uiAction_form.action" name="uiAction_form_action">

用户名:

<input id="uiAction_form_action_username" type="text" value="" name="username">

<br>

密码:

<input id="uiAction_form_action_password" type="password" value="" name="password">

<br>

选择省份:

<select id="uiAction_form_action_pid" name="pid">

<option value="">请选择省份</option>

<option value="1">北京市</option>

<option value="2">上海市</option>

<option value="3">重庆市</option>

</select>

<br>
  省份:

<input id="pid-1" type="checkbox" value="1" name="pid">

<label class="checkboxLabel" for="pid-1">北京市</label>

<input id="pid-2" type="checkbox" value="2" name="pid">

<label class="checkboxLabel" for="pid-2">上海市</label>

<input id="pid-3" type="checkbox" value="3" name="pid">

<label class="checkboxLabel" for="pid-3">重庆市</label>

<input id="__multiselect_uiAction_form_action_pid" type="hidden" value="" name="__multiselect_pid">

</form>
</body>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2 struts 框架 标签