Struts 2 标签 ONGL(1)

来源:互联网 发布:java 接口传递文件流 编辑:程序博客网 时间:2024/06/03 23:06

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'index.jsp' starting page</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 
  </head>
 
  <body>
 
    <s:form action="user">
     <s:a href="user">进入</s:a>
     
     <!-- 专门取值的标签  (直接写就是取栈顶的元素的值) -->
     name:<s:property value="name"/>
     age:<s:property value="age"/>
     <hr/>
     
     <!-- 使用标签定义一个集合   并取得集合中的第一个元素 -->
     <s:set value="{111,222,333}" var="arr"></s:set>
     取第一个元素:<s:property value="#arr[0]"/>
     <hr/>
     
     <!-- 取session值两个方法 -->
     法一:<s:property value="#session.stu"/><br/>
     <s:property value="#session['stu']"/><!-- 写法二 -->
     <br/>
     <!-- 去四大范围中搜索 -->
     法二:<s:property value="#attr.stu"/>
     <hr/><br/>
     
     <!-- 区request中取值 -->
     取request的值:<br/>
     struts.view_uri=<s:property value="#request['struts.view_uri']"/><br/>
     struts.request_uri=<s:property value="#request['struts.request_uri']"/>
     <br/><hr/>
     
     取参数 :<br/>
     取得struts.xml的result配置中的参数<br/>
     <s:property value="#parameters.id[0]"/>
     <br/><hr/>
     
     <!-- % 号 的用法  用于 非 s:property 等取值-->
     name:<s:property value="%{name}"/>---- 
     age:<s:property value="%{age}"/>
     
     <br> ------------------------------------- <br>
     
     <hr/><br/>
     
     迭代list:<br/>
     <s:iterator value="list">
      name:<s:property value="name"/>,
      age:<s:property value="age"/><br/>
     </s:iterator>
     
     <hr/><br/>
     迭代map集合:<br/>
     <s:iterator value="map">
      key:<s:property value="key"/>,
      value:<s:property value="value"/><br/>
     </s:iterator>
     
     <hr/><br/>
     
     <!-- 取集合中的单个元素 -->
     取集合中的单个:<br/>
     <s:property value="map[101]"/>
     <br/><hr/>
     
  <!-- 单选按钮 -->     
     s:if标签输出:<br/>
     <s:set var="score" value="72"></s:set>
     <s:if test="#score>80">
      优秀
     </s:if>
  <s:elseif test="#score>79">
   良好
  </s:elseif>
  <s:else>
   一般
  </s:else>
  <hr/><br/>
  
  <!-- 集合筛选 -->
  集合的筛选:<br/>
  <s:iterator value="list.{?#this.age>18}.{?#this.age<20}.{name}" >
   <%--<s:property value="name"/>---<s:property value="age"/>--%>   
   <s:property/>
  </s:iterator>
  <hr/><br/>
         
  <%--^  是满足这个条件的最后一个 --%>      
  ^ 指  满足条件的最后一个:<br/>
  <s:iterator value="list.{^#this.age>18}">
   age:<s:property value="age"/>---name:<s:property value="name"/> 
  </s:iterator>
  <hr/><br/>
  
  <!-- 下拉类表
      要先进action 绑定了集合后在进页面
      下拉框list就是一个绑定的集合
      listKey 就是下拉框option的value
      listValue 就是下拉框的
      name 为最后提交的那个名字
      headerKey 就是下拉框的第一个元素
     -->
     下拉列表提交的值:<br/>
     <s:iterator value="stuId">
      <s:property/>
     </s:iterator>
     <s:select list="list" listKey="age" listValue="name" name="stuId"
      headerKey="0" headerValue="--请选择--">
     </s:select>
     <hr/><br/>
     
     <!-- 复选框 -->
     多选框提交的值:<br/>
     <s:iterator value="stuId2">
      <s:property/>
     </s:iterator>
     <s:checkboxlist list="list" listKey="age" listValue="name"
      name="stuId2">
     </s:checkboxlist>
     <hr/><br/>
  
  <!-- 单选按钮 -->  
  单选按钮输出:<br/>
  <s:property value="stuId3"/>    
  <s:radio list="list" listKey="age" listValue="name" name="stuId3"></s:radio>       
  <hr/><br/>
  
     <s:textfield name="name" label="name"></s:textfield>
     <s:textfield name="age" label="age"></s:textfield>
     <s:submit></s:submit>
    </s:form>
   
    <hr/><br/>
    <!-- 调用action 中的方法 ,需要先进action -->
    <s:property value="getmyname()"/>
    <hr/><br/><br/>
   
     
        补充:<br/>
   
    <!-- 调用静态方法...需要开启一个全局配置  struts.ognl.allowStaticMethodAccess
     访问静态方法 语法:<s:property value="@报名.类名@方法名()"/> -->
     调用静态方法...在struts2.0以上的版本需要在struts.xml中开启一个全局配置  struts.ognl.allowStaticMethodAccess:<br/>
    <s:property value="@entity.Student@getmethod()"/>
    <hr/><br/>
   
    <!-- 此处不能用debug,为什么呢?不知道 -->
    <%--<s:debug></s:debug>--%>
  </body>
</html>

原创粉丝点击