struts2标签库

Struts2 提供控制标签 Generic Tags

   1 property通过ognl表达式,取得值栈中数据 (非常重要)

                   <%

                            ServletActionContext.getRequest().setAttribute("info","itcast");

                   %>

                   <s:propertyvalue="#request.info"/>

                   <s:propertyvalue="#request.company" default="默认公司"/>  当取不到值的时候就是默认值

   2、 set 用于向web中 page 、request、 session、application 保存数据

            var:变量的名字,name,id和var表达的含义是一样的,name,id被var替代

         scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或

                action。如果没有设置该属性,则默认放置在值栈的context中。

         value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。

 

                   <s:set var="num"value="10" scope="session"></s:set>

                   ${num }

   3、 action 用于执行目标Action。

                   Action:通过指定命名空间和action名称,该标签允许在jsp页面直接调用Action

         name:action名字(不包括后缀,如.action)

         namespace:action所在命名空间

         executeResult:Action的result是否需要被执行,默认值是false不执行

                   <s:actionname="valuestack" executeResult="true"></s:action>

   4 iterator用于遍历集合(非常重要)

                   value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。

                   var:可选属性,引用变量的名称.

                   status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:

                            intgetCount(),返回当前迭代了几个元素。

                            intgetIndex(),返回当前迭代元素的索引。

                            boolean isEven(),返回当前被迭代元素的索引是否是偶数

                            boolean isOdd(),返回当前被迭代元素的索引是否是奇数

                            booleanisFirst(),返回当前被迭代元素是否是第一个元素。

                            boolean isLast(),返回当前被迭代元素是否是最后一个元素。

                   遍历List

                   <s:iteratorvalue="{'aaa','bbb' }" var="s">  构造List的时候不用写#

                            <s:propertyvalue="#s"/>

                   </s:iterator><br/>

                   遍历Map

                   <s:iteratorvalue="#{'company':'itcast', 'addr':'beijing' }"var="entry">  构造Map的时候用写#

                            <s:propertyvalue="#entry.key"/> <s:property value="#entry.value"/><br/>

                   </s:iterator>

   5、if/elseif/else 用于条件控制 (非常好用 )

                   <s:setvar="money" value="500000"scope="request"></s:set>

 

                   <s:iftest="#request.money < 30000">普通用户</s:if>

                   <s:elseiftest="#request.money<100000">重要客户</s:elseif>

                   <s:else>VIP用户</s:else>

   6、 url 进行URL重写 (禁用cookie,追踪session)、对参数进行编码,该标签用于创建url,可以通过"param"      标签提供request参数.

             value:如果不提供就用当前action,使用value后缀必须加.action

              action:用来生成url的action,如果没有则使用value

              namespace :命名空间

             var:引用变量的名称.

                   <s:url action="valuestack"namespace="/" var="myurl">

                            <s:paramname="name" value="%{'张三'}"></s:param>

                   </s:url>

         7 a标签将请求指向Action

                   <ahref="${pageContext.request.contextPath}/valuestack.action?name=itcast">访问valueStack</a>

                   转为struts标签

                            <s:aaction="valuestack">

                                     <s:paramname="name" value="%{'itcast'}"></s:param>

                                     访问valueStack

                           </s:a>

 

struts2 提供 UI Tag (form相关标签)

         使用struts2 form标签最大优点: 数据回显

         struts2 表单标签布局排版 使用 freemarker 默认引擎

        

         form标签中如果使用OGNL必须用 %{} 括起来,否则OGNL表达式不会解析

        

表单标签的共同属性


1、 s:form 定义form元素


         常用5个属性 :

         action (struts.xml配置<action>name值) 、namespace (<package>名称空间)、 method 、enctype (上传) 、theme (样式)

例:
	<form action="${pageContext.request.contextPath }/login.action" method="post">
		用户名 <input type="text" name="username" /> <br/>
		密码 <input type="password" name="password" /> <br/>
		<input type="submit" value="提交" />
	</form>
	<hr/>

	<s:form action="login" namespace="/" method="post" >
		<!-- textfield 生成 input text -->
		<s:textfield name="username" label="用户名"></s:textfield><br/>
		<s:password name="password" label="密码"></s:password> <br/>
		<s:submit type="submit" value="提交"></s:submit>
	</s:form>

2、 textfield 标签 生成 <inputtype="text" >

    password 标签 生成 <input type="password" >

         submit 标签 生成 <input type="submit" >

        

注意:使用struts2标签,必须要配置核心Filter!!!!!!!!!!!!!!

设置<s:formtheme="simple">默认布局 xhtml,这个默认布局会加上表格规划页面,破坏了美工的效果

 

3、 使用label为 form元素添加标签


         <s:labelfor="username">用户名</s:label> 

         <s:textfieldname="username" id="username"></s:textfield><br/>

 

4、 textarea 生成 <textarea>  


         个人简介<textarea rows="5" cols="60"name="introduce"></textarea> <br/>

         个人简介<s:textarea cols="60" rows="5"name="introduce"></s:textarea><br/>

        

5、 checkboxlist 根据一个List或者Map 动态生成一组checkbox


         爱好 <inputtype="checkbox" name="hobby" value="体育" /> 体育

         <input type="checkbox"name="hobby" value="音乐" /> 音乐

         <input type="checkbox"name="hobby" value="爬山" /> 爬山   

         <input type="checkbox"name="hobby" value="篮球" /> 篮球 <br/>

        

         选择内容和值相同时,使用List ----  爱好 <s:checkboxlist list="{'体育','音乐','爬山','篮球'}"name="hobby"></s:checkboxlist>

 

         爱好 <inputtype="checkbox" name="hobby" value="sport" /> 体育

         <input type="checkbox"name="hobby" value="music" /> 音乐

        

         选择内容和值不相同,使用Map ----- <s:checkboxlistlist="#{'sport':'体育','music':'音乐'}" name="hobby"></s:checkboxlist>

                                                                                             体育、音乐是看到的内容,sport music 是value

 

6、 radio 生成 单选 <inputtype="radio" > 列表


         性别  <input type="radio"name="gender" value="男"/> 男     

                    <input type="radio"name="gender" value="女"/> 女<br/>

        

         性别 <s:radiolist="{'男','女'}"name="gender"></s:radio> <br/>

        

7、 select 生成下拉框


         城市 <selectname="city">

                            <optionvalue="">请选择城市 </option>

                            <optionvalue="北京">北京</option>

                            <optionvalue="上海">上海</option>

                            <optionvalue="广州">广州</option>

                   </select> <br/>

        

         城市 <s:selectlist="{'北京','上海','广州'}" headerKey="" headerValue="请选择城市" name="city"></s:select>

 

struts2 标签为什么能回显? 数据从哪来 ? -------- 值栈

         如果Action实现 ModelDriven接口,Action被访问后,model对象“请求”数据,会被压入到值栈的顶部,如果Action执行过程中,修改model数据,值栈中仍然是原来model数据

 

默认主题包 xhtml,在开发中为了页面便于布局,请一定要使用simple主题 !!!!!!

   如果修改主题 有三个位置可以改

   1) <s:textField theme="simple" > 只对当前标签有效

   2) <s:form theme="simple" > 对form中所有表单元素有效

   3) 配置struts.xml 

                   <constantname="struts.ui.theme"value="simple"></constant> 会对所有form生效

为了省事 配置第三种, form不多,可以使用第二种


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值