struts2学习---struts2常用标签(上)

首先给大家介绍一下用到的文件目录如下:
这里写图片描述

struts.xml文件内容:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- http://struts.apache.org/dtds/struts-2.3.dtd定义了这个xml文件需要提示的语法内容 -->
<struts>
 <!-- 设置为开发模式-->
<constant name="struts.devMode" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<!-- 设置字符集 -->
 <package name="tags" namespace="/" extends="struts-default">

        <action name="tags" class="com.mayday.struts.tags.TagsAction"  >
            <result  >/tags.jsp</result> 
        </action>
    </package>
</struts>

TagsAction.java文件:

package com.mayday.struts.tags;

import com.opensymphony.xwork2.ActionSupport;

public class TagsAction extends ActionSupport {

    private String password;
    private String username;
    public TagsAction() {
        super();
    }
    public TagsAction(String username, String password) {
        super();
        this.username = username;
        this.password = password;
    }
    public String getPassword() {
        return password;
    }
    public String getUsername() {
        return username;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public void setUsername(String username) {
        this.username = username;
    }

   public String excute(){
        return SUCCESS;
    }
}

Dog.java文件

package com.mayday.struts.tags;

public class Dog {

    private String nameString;

    public String getNameString() {
        return nameString;
    }

    public void setNameString(String nameString) {
        this.nameString = nameString;
    }

    public Dog(String nameString) {
        super();
        this.nameString = nameString;
    }
    public Dog() {
        super();

    }

    public String toString( ){
        return "Dog:"+nameString;

    }
}

index.jsp内容:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
访问属性:<a href="TagsAction?username=kangjing&password=123456">Tags</a>
</body>
</html>

tags.jsp内容:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
    <%@taglib uri="/struts-tags"  prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
  <ol>
  <li><b>property标签</b></li>
    <li>property(访问ognl表达式里面的值 username="kangjing"):<s:property value="username"/>
    <li>property:访问字符串(username字符串本身):<s:property value="'username'"/>
    <!-- 标签的属性有的是ognl表达式,有些为字符串,容易混淆,property的value的类型是object,
                 默认将字符串 解析为ognl表达式,如果想要字符串本身,则需要双引号里面加单引号,如下:-->
    <li>property:设置默认的值(值栈中是没有admin这个值的,当设置了默认值之后,如果value为空,则取默认值):<s:property value="admin" default="管理员"/>
    <li>property:设置HTML<s:property value="'<hr/>'" escape="true"/>
    <!-- 默认escape="false" 输出为横线,当设置为true则输出<hr/>  -->
    <hr/>

    <!-- set标签在需要换名的情况下用的比较多 -->
    <li><b>set标签</b></li>
    <li>set设置adminname(默认取值的域为ActionContext和request):<s:set var="adminname" value="username"/></li>
    <!-- 这句话的意思是:它会把设置的变量adminname即放到request里面又会放到actionContext里面,它的值为username的值-->
    <li>从request取值:<s:property value="#request.adminname"/>  </li>
    <li>从ActionContext取值:<s:property value="#adminname"/>  </li>

    <li>set设置范围(默认范围为request、ActionContext):<s:set name="adminpassword" value="password" scope="page" /></li>
    <li>从相应范围取值(从page取值):<%=pageContext.getAttribute("adminpassword") %></li>

    <li> set设定 var,范围为ActionContext<s:set  var="adminpassword" value="password"/> </li>
    <li> set设置var 范围为session <s:set var="adminpassword"  value="password" scope="session" /></li>
    <li>从相应为范围取值:<s:property value="#adminpassword"/>
   <hr/>
   <li><b>bean标签</b></li>
   <li> bean定义bean ,使用param来设置新的属性值
   <s:bean name="com.mayday.struts.tags.Dog" var="mydog">
   <s:param name="nameString" value="'oudy'"></s:param>
   <s:property value="#mydog"/>
   </s:bean>
   <!-- 只有定义了var才能在actionContext里面看见mydog对象 -->
   </li>
   <hr/>
   <li><b>include标签</b></li>

   <li> include  包含静态英文文件(include1.html):
   <s:include value="/include1.html"/></li>

    <li> include  包含静态中文文件(include2.html):
   <s:include value="/include2.html"/></li>

   <li>使用include标签 包含 include1.html文件,说明%的用法</li>
   <s:set var="inCpage" value="include2.html"></s:set>
   <s:include value="#inCpage"></s:include>
   <!-- include标签的value类型为string类型,如果用上面的方式访问则是找#inCpage 文件,
            把它当做字符串处理了,则需要下面的方法访问:-->
   <s:include value="%{#inCpage}"></s:include>

  <s:debug></s:debug>
</body>
</html>

总结:
(一)、property标签
property标签 作用简介: property标签用于取得value的属性值。
1.显示Action中的属性值:<s:property value="属性名" />
实例如下:

<li>property(访问ognl表达式里面的值 username="kangjing"):<s:property value="username"/>

2.显示字符串,使用单引号:<s:property value="'字符串'" />
例:

<li>property:访问字符串(username字符串本身):<s:property value="'username'"/>

3.显示默认值,Action中找不到指定的属性时,显示default属性的值:<s:property value="属性名" default="默认值" />
例:

<li>property:设置默认的值(值栈中是没有admin这个值的,当设置了默认值之后,如果value为空,则取默认值):
   <s:property value="admin" default="管理员"/>

4.解析HTML字符串,escape默认值为true,直接输出字符串,escape设为false时,
解析HTML字符串。
实例如下:

<li>property:设置HTML<s:property value="'<hr/>'" escape="true"/>
<!-- 默认escape="false" 输出为横线,当设置为true则输出字符串<hr/>  -->

(二)、 set标签
简介:set标签用于赋予变量一个特定范围的值( 常常在需要改变变量名称时使用)
1.set的属性:
a. var:设置变量的名称,string类型,不推荐使用id和name设置变量的名称;
b. value:设置变量的值;object类型
c. scope:作用范围,可以设置page,request,session,application,action;
2.不设置scope时,变量默认保存在request和ActionContext中。
实例如下:

<li>set设置adminname(默认取值的域为ActionContext和request):
<s:set var="adminname" value="username"/></li>
<!-- 这句话的意思是:它会把设置的变量adminname即放到request里面又     会放到actionContext里面,它的值为username的值-->
<li>从request取值:<s:property value="#request.adminname"/>  </li>
<li>从ActionContext取值:<s:property value="#adminname"/>  </li>


<li>set设置范围(默认范围为request、ActionContext):<s:set name="adminpassword" value="password" scope="page" /></li>
<li>从相应范围取值(从page取值):<%=pageContext.getAttribute("adminpassword") %></li>

<li> set设定 var,范围为ActionContext<s:set  var="adminpassword" value="password"/> </li>
<li> set设置var 范围为session <s:set var="adminpassword"  value="password" scope="session" /></li>
<li>从相应为范围取值:<s:property value="#adminpassword"/>

(三)、bean标签
简介:bean标签用于设置JavaBean的值
1.bean标签的属性:
a. name:JavaBean的类名,不推荐使用id;
b. var:JavaBean对象名,可以通过“#”访问。
2.在bean标签中,使用标签设置JavaBean对象的属性值,
其中value的值为OGNL表达式,字符串应使用单引号;
3.如果不设置“var”属性,JavaBean对象只在bean标签中有效,在bean标签外部无法访问。
实例如下:

   <li> bean定义bean ,使用param来设置新的属性值
   <s:bean name="com.mayday.struts.tags.Dog" var="mydog">
   <s:param name="nameString" value="'oudy'"></s:param>
   <s:property value="#mydog"/>
   </s:bean>
   <!-- 只有定义了var才能在actionContext里面看见mydog对象 -->
   </li>

(四)、include标签
简介:用于包含指定的页面
1.include标签的属性:
value:被包含页面的地址,字符串类型,如果是OGNL表达式,则要使用以下形式:%{OGNL表达式};
实例如下:

   <li>使用include标签 包含 include1.html文件,说明%的用法</li>
   <s:set var="inCpage" value="include2.html"></s:set>
   <s:include value="#inCpage"></s:include>
   <!-- include标签的value类型为string类型,如果用上面的方式访问则  是找#inCpage 文件,把它当做字符串处理了,则需要下面的方法访问:-->
   <s:include value="%{#inCpage}"></s:include>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值