JSP

JSP

数据标签主要用于提供各种数据访问相关的功能,包含显示一个Action里的属性,以及生成国际化输出等功能。
action标签
  使用Action标签可以允许在JSP页面中直接调用Action,因为需要调用Action,故可以指定需要被调用Action的name和 namespace,如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果(视图资源)包含到本页面中来。 action标签有如下几个属性:
  id:可选属性,该属性将会作为该Action的引用ID
  name:必填属性,通过该属性指定该标签调用哪个Action
  namespace:可选属性,指定该标签调用的Action所在的namespace
  executeResult:可选属性,指定是否需要将action的处理结果页面包含到本页面中,默认值为false不包含
  ignoreContextParams:可选属性,指定该页面中的请求参数是否需要传入

例子如下:
      Action代码如下:
      package lee;
      importcom.opensymphony.xwork2.ActionSupport;
      importorg.apache.struts2.ServletActionContext;
      public class TagAction extendsActionSupport
      {
      private String author;
      public void setAuthor(Stringauthor)
      {
      this.author = author;
      }
      public String getAuthor()
      {
      return author;
      }
      public String execute() throwsException
      {
      return "done";
      }
      public String login() throwsException
      {
     ServletActionContext.getRequest().setAttribute("au thor",getAuthor());
      return "done";
      }
      }
      struts.xml配置文件中的配置如下:
      <?xml version="1.0"encoding="GBK"?>
      <!DOCTYPEstrutsPUBLIC
      "-//Apache SoftwareFoundation//DTDStrutsConfiguration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
      <struts>
      <constantname="struts.custom.i18n.resources"value="messageResource"/>
      <constant name="struts.i18n.encoding"value="GBK"/>
      <constantname="struts.date.format" value="yyyy年MM月dd日"/>
      <package name="lee"extends="struts-default">
      <actionname="tag1"class="lee.TagAction">
      <resultname="done">succ.jsp</result>
      </action>
      <actionname="tag2"class="lee.TagAction" method="login">
      <resultname="done">loginSucc.jsp</result>
      </action>
       <actionname="*"><result>/{1}.jsp</result> </action> </package></struts> 上面两个Action的返回视图资源如下:
      succ.jsp
      <%@ page contentType="text/html;charset=GBK" language="java"%>
      <%@taglib prefix="s"uri="/struts-tags"%>
      <html>
      <head>
      <metahttp-equiv="Content-Type" content="text/html;charset=GBK"/>
      <title>s:action的成功页面</title>
      </head>
      <body>
      <br>
      执行成功!!
      </body>
      </html>
      loginSucc.jsp
      <%@ pagecontentType="text/html; charset=GBK" language="java"%>
      <%@taglib prefix="s"uri="/struts-tags"%>
      <html>
      <head>
      <meta http-equiv="Content-Type"content="text/html; charset=GBK"/>
      <title>s:action的成功页面</title>
      </head>
      <body>
      <br>
      <s:propertyvalue="#attr.author"/>,登陆成功!!
      </body>
      </html>
      调用Action的页面代码如下:
      <%@ page contentType="text/html;charset=GBK" language="java"%>
      <%@taglib prefix="s"uri="/struts-tags"%>
      <html>
      <head>
      <metahttp-equiv="Content-Type" content="text/html;charset=GBK"/>
      <title>使用s:action标签在页面中调用Action</title>
      </head>
      <body>
      下面调用第一个Action,并将结果包含到本页面中。<br>
      <s:actionname="tag1"executeResult="true"/>
      <hr/>
      下面调用第二个Action,并将结果包含到本页面中。<br>
      并且阻止本页面请求参数传入Action。<br>
      <s:actionname="tag2"executeResult="true" ignoreContextParams="true"/>
      <hr/>
      下面调用第二个Action,且并不将结果包含到本页面中。<br>
      <s:actionname="tag2"executeResult="false"/>
      <s:propertyvalue="#attr.author"/>
      </body>
      </html>
      bean标签
      bean标签用于创建一个JavaBean的实例,创建实例时,可以在该标签体内使用param标签为该JavaBean实例传入属性。可以使用如下两个属性:
   name:必填属性,指定要实例化的JavaBean的实现类
   id:可选属性,如果指定了该属性则JavaBean的实例会放入pageContext中,否则只在此标签内有效
      例子如下:
      JavaBean代码如下:
      package lee;
      public class Person
      {
      private String name;
      private int age;
      public void setName(String name)
      {
      this.name = name;
      }
      public String getName()
      {
      return (this.name);
      }
      public void setAge(int age)
      {
      this.age = age;
      }
      public int getAge()
      {
      return (this.age);
      }
      }
      页面代码如下:这个页面中注入的Bean只在bean标签内有效
      <%@ pagecontentType="text/html; charset=GBK" language="java"%>
      <%@taglib prefix="s"uri="/struts-tags"%>
      <html>
      <head>
      <meta http-equiv="Content-Type"content="text/html; charset=GBK"/>
      <title>使用s:bean标签创建JavaBean的实例</title>
      </head>
      <body>
      <s:beanname="lee.Person">
      <s:param name="name"value="'yeeku'"/>
      <s:param name="age"value="29"/>
      <s:property value="name"/><br>
      <s:propertyvalue="age"/>
      </s:bean>
      </body>
 
    </html>
 
    下面的页面代码中,注入的Bean可以在此页面中有效:
      <%@ pagecontentType="text/html; charset=GBK" language="java"%>
      <%@taglib prefix="s"uri="/struts-tags"%>
      <html>
      <head>
      <metahttp-equiv="Content-Type" content="text/html;charset=GBK"/>
      <title>使用s:bean标签创建JavaBean的实例</title>
      </head>
      <body>
       <s:beanname="lee.Person" id="p"> <s:paramname="name" value="'yeeku'"/> <s:paramname="age" value="29"/> </s:bean> <s:propertyvalue="#p.name"/><br> <s:propertyvalue="#p.age"/> </body> </html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值