struts标签简单应用

struts2的标签:

<!-- 后台定义了 public List list 以及 list 的get set方法,没request.setattribute方法  

    --前台调用list的时候,value不需要加#  var属性相当于list里的对象 status为状态属性

    --property 的value书写要求:如果value的的值只是一个字符串,则可以不加#,格式如:ll。

    --如果为一个实体,需要加#,书写格式如:#ll

-->

<s:iterator value="list"  var="ll" status="counts">

<s:property value="#ll"/>

</s:iterator>


<!-- 后台定义了 public Map map 以及 map 的get set方法,没request.setattribute方法  

    --前台调用map的时候,value不需要加#  

    --property 的value书写两种格式,如下

-->

<s:iterator value="map" var ="mm" status="counts">

<!--  可以这样:

<s:property value="key"/>:<s:property value="value"/></br>

 -->

<s:property value="#mm.key"/>:<s:property value="#mm.value"/>

</s:iterator></br>


<!-- %的作用就是 将字符串list翻译成ognl可以解析的代码-->

<s:property value="%{list}"/></br>


<!-- 后台的格式是 request.setAttribute("semesterList",semesterList)  

   --前台调用的时候,value值要加上#request.semesterList  ,

   --遍历体里面的s:property标签的value 的值前面依然要加#

-->

<s:iterator value="#request.semesterList" var="semester" status="counts">

${semester.seName}  |  property方式:<s:property value="#semester.seName"/>

</br>

</s:iterator>

</br>


<!-- 获取semesterList第一个元素的的子元素seName ,以下两种方式。

   --因为arraylist是通过数组放方式存储数据的,所以第一种方式通过#request.semesterList[0]可以访问到一个元素

   --从第二种方式可以看出 在value值种可以访问对象的方法-->

<s:property value="#request.semesterList[0].seName"/>

<!-- 

<s:property value="#request.semesterList.get(0).seName"/>

 -->

</br>


<!-- 访问map所value值 -->

<s:property value="map.values()"/>

</br>

<!-- 这里注意 #request.semId 可以访问两种 :后台设置为request.setAttribute("semId",semId),或者semId的get set方法。

    --但是如果后台设置了session.setAttribute("semId",semId),则前台的value只能为为#session.semId,同理application。

 -->

<s:property value="#reqeust.semId"/>


//最后注意只有在struts2标签体中,才能解析 #,%




el表达式:

范例

说明

${pageScope.username}

取出Page范围的username变量

${requestScope.username}

取出Request范围的username变量

${sessionScope.username}

取出Session范围的username变量

${applicationScope.username}

取出Application范围的username变量



pageContext

我们可以使用 ${pageContext}来取得其他关用户要求或页面的详细信息。下表列出了几个比较常用的部分

Expression

说明

${pageContext.request.queryString}

取得请求的参数字符串

${pageContext.request.requestURL}

取得请求的URL,但不包括请求之参数字符串,即servlet的HTTP地址。

${pageContext.request.contextPath}

服务的webapplication的名称

${pageContext.request.method}

取得HTTP的方法(GET、POST)

${pageContext.request.protocol}

取得使用的协议(HTTP/1.1、HTTP/1.0)

${pageContext.request.remoteUser}

取得用户名称

${pageContext.request.remoteAddr}

取得用户的IP地址

${pageContext.session.new}

判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用

${pageContext.session.id}

取得session的ID

${pageContext.servletContext.serverInfo}

取得主机端的服务信息



el和ognl表达式配合使用:

通常见到


<!-- request,session,application范围的,访问格式:${request.XXX}/${session.XXX}/${application.XXX}

  ---如果有get set方法,访问格式${XXX}.

  ---如果在ognl的循环体里面,即使外对象(如semesterList)在request,session,application范围,里面可以直接这样访问:${semester.seName} 

 -->

<s:iterator value="#request.semesterList" var="semester" status="counts">

el表达式:${semester.seName}  |  ognl方式:<s:property value="#semester.seName"/>

</br>

</s:iterator>

</br>



<s:if test="#parameters.name[0]=='1'">

<s:if test="#parameters.roleCode[0]=='fenguanxiaolingdao' || #parameters.roleCode[0]=='fadingdaibiaoren'">

el表达式重用于展示结果


你可能感兴趣的:(struts标签)