三大框架(ssh)——Struts标签

struts2标签和EL表达式

struts2标签库开始 可以支持EL表达式。但是从2.0.11开始,不再支持EL表达式。Struts推荐更为强大的OGNL语言。

常用数据标签

property 输出变量值

property标签用于输出变量的值,输出OGNL表达式的结果。前面我们已经调用了多次!下面是示例代码:

   <s:property value="3*3" />

   <s:property value="#request.a" />

set  设置变量值

通过set标签,我们可以给指定的变量设值,或进行集合的初始化。

   <s:set var="s" value="{00,11,22,33,44,55,66,77,88,99}" ></s:set>

   <s:set var="s2" value="'aaa'" scope="request"></s:set>

action 执行Action

action标签用于访问某个action,并将结果包含进来或者保存到指定变量中。这里有这样几个参数需要我们理解:

name   将要执行的action在配置文件中的名字(不需要加.action后缀)

namesapce   将要执行的action所在的命名空间(可选,但是强烈建议加上!)

executeResult  是否将action执行的结果页面包含在本页面中

ignoreContextParam:  可选,指定该页面的请求参数是否需要传入action(如果传参,置为false)

var   将该action对象以这里指定的名字放入StackContext中,便于后续引用

测试代码:

package com.bjsxt.struts.test;

 

 

import com.opensymphony.xwork2.ActionSupport;

 

public class TestOGNLAction extends ActionSupport{

 

private String uname;

 

public String execute() throws Exception {

//增加测试代码

System.out.println("TestOGNLAction.execute()");

return this.SUCCESS;

}

 

public String getUname() {

return uname;

}

 

public void setUname(String uname) {

this.uname = uname;

}

 

}

       <action name="testOgnl" class="com.bjsxt.struts.test.TestOGNLAction">

          <result name="success">/ok.jsp</result>

        </action>

Ok.jsp的内容如下:

<%@ page language="java" import="java.util.*,com.bjsxt.struts.test.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试OGNL</title>

  </head>

  <body>

   <h2>(((<s:property value="uname" />)))</h2>

  </body>

</html>

Test.jsp内容如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试struts2</title>

  </head>

  <body>

   <s:action var="a" name="testOgnl" namespace="/" executeResult="true" ignoreContextParams="false" >

   <s:param name="uname">老高</s:param>

   </s:action>

   <s:property value="#a.uname"  />

   --<s:property value="uname"  />

   <s:debug></s:debug>

  </body>

</html>

date 输出日期

date标签用于格式化输出时间。类似于我们学的DateFormat类的作用。

 

测试代码:

   <%

   request.setAttribute("d",new Date(23432432L));

    %>

    <s:date name="#request.d" format="yyyy-MM-dd" nice="true" /> <!-- 增加nice,format属性不起作用 -->

    <hr/>

    <s:date name="#request.d" format="yyyy-MM-dd"  var="c"/> <!-- 使用var,时间不会打印出,而是保存在c变量中! -->

    <hr/>

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

输出结果:

include 包含其他资源执行结果

作用类似于<jsp:include>用于包含其他资源的执行结果。

 

新建1.jsp,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>

<h1>被包含!!</h1>

 

Ok.jsp,代码如下:

<%@ page language="java" import="java.util.*,com.bjsxt.struts.test.*" pageEncoding="gbk"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>测试OGNL</title>

  </head>

  <body>

   <a>我是ok.jsp</a>

   <s:include value="1.jsp"></s:include>

    <a>我是ok.jsp</a>

  </body>

</html>

 

结果显示为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值