jspstrurs2标签.docx

上传人:b****8 文档编号:11444609 上传时间:2023-03-01 格式:DOCX 页数:61 大小:44.15KB
下载 相关 举报
jspstrurs2标签.docx_第1页
第1页 / 共61页
jspstrurs2标签.docx_第2页
第2页 / 共61页
jspstrurs2标签.docx_第3页
第3页 / 共61页
jspstrurs2标签.docx_第4页
第4页 / 共61页
jspstrurs2标签.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

jspstrurs2标签.docx

《jspstrurs2标签.docx》由会员分享,可在线阅读,更多相关《jspstrurs2标签.docx(61页珍藏版)》请在冰豆网上搜索。

jspstrurs2标签.docx

jspstrurs2标签

Struts2标签

1.a 

a标签创建一个HTML超链接,等价于HTML的

示范代码:

ahref="login.action">登陆

a>

2.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、默认是false,即将本页的请求参数传入被调用的Action。

下面是本示例应用中的Action类,包含连个处理逻辑。

代码如下

publicclassTagActionextedndsActionSupport

{

    //封装用户请求参数的author属性

    privateStringauthor;

    //author的get和set的方法,省略……

    publicStringexecute()throwsException

    {

        return "done";

    }    

   publicStringlogin()throwsException

    {

        ServletActionContext.getRequest().setAttribute("author",getAuthor());

        return"done";

    }

}

上面的Action类包含两个处理逻辑,可以在struts.xml文件中通过指定method属性来将该Action类映射成两个逻辑Action。

代码如下

    

--定义第一个Action,使用lee.TagAction的execute方法作为处理逻辑-->

    

        succ.jsp

    

   

--定义第二个Action,使用lee.TagAction的login方法作为处理逻辑-->

    

        loginSucc.jsp

    

    ..............

上面配置文件将一个Action类定义成两个逻辑Action,可以在JSP页面中通过

action.../>标签来调用这两个逻辑Action,部分jsp代码如下:

      下面调用第一个Action,并将结果包含到本页面中。

    

action  name="tage1" executeResult=“true” />

        下面调用第二个Action,并将结果包含到本页面中。


        阻止本页面请求参数传入Action 

    

action  name=“tag2” executeResult="true" ignoreContextParams="true" />

    

    下面调用第二个Action,且不将结果包含到本页面中。


    

action  name="tag2" executeResult="false" />

    

property  value="#attr.author"/>

上面页面中,通过指定executeResult属性来控制是否将处理结果包含到本页面中;还可以通过ignoreContextParams属性来决定是否将本页面的请求参数出入Action。

3.actionerror

这个标签负责输出错误信息到客户端,例子如下:

Action代码如下:

packagelee;

importcom.opensymphony.xwork2.ActionSupport;

publicclassDemoActionextendsActionSupport

{

@Override

publicStringexecute()

{

  addActionError("第一条错误消息!

"); 

  addActionError("第二条错误消息!

"); 

  returnSUCCESS;

}

}

JSP页面代码如下:

<%@pagecontentType="text/html;charset=GBK"language="java"%>

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

actionerror/>

4.actionmessage 

这个标签负责输出提示信息到客户端,例子如下:

Action代码如下:

packagelee;

importcom.opensymphony.xwork2.ActionSupport;

publicclassDemoActionextendsActionSupport

{

@Override

publicStringexecute()

{

  addActionMessage("第一条普通消息!

"); 

  addActionMessage("第二条普通消息!

"); 

  returnSUCCESS;

}}

JSP页面代码如下:

<%@pagecontentType="text/html;charset=GBK"language="java"%>

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

actionmessage/>

5.append 

来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

id

 

String

用来保存结果iterator的对象在valuecontext中的名字。

例子

Action类

publicclassAppendIteratorTagActionextendsActionSupport{

 

 privateListmyList1;

 privateListmyList2;

 privateListmyList3;

 

 

 publicStringexecute()throwsException{

 

    myList1=newArrayList();

    myList1.add("1");

    myList1.add("2");

    myList1.add("3");

 

    myList2=newArrayList();

    myList2.add("a");

    myList2.add("b");

    myList2.add("c");

 

    myList3=newArrayList();

    myList3.add("A");

    myList3.add("B");

    myList3.add("C");

 

    return"done";

 }

 

 publicListgetMyList1(){returnmyList1;}

 publicListgetMyList2(){returnmyList2;}

 publicListgetMyList3(){returnmyList3;}

 

标签使用

appendid="myAppendIterator">

    

paramvalue="%{myList1}"/>

    

paramvalue="%{myList2}"/>

    

paramvalue="%{myList3}"/>

append>

iteratorvalue="%{#myAppendIterator}">

    

property/>

iterator>

6.bean 

bean标签 用于创建一个JavaBean的实例。

创建JavaBean实例时,可以在标签体内使用标签为该JavaBean实例传入属性,要使用这个标签,需要为该JavaBean类提供对应的setter方法。

如该JavaBean类提供了对应的getter方法,我们就可以访问对应的属性。

bean标签 的属性:

name:

 必填,指定要实例化的JavaBean的实现类

id:

 可选。

如指定了该属性,则该Javabean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该id属性来访问该JavaBean实例。

【!

注意:

 在bean标签内时,bean标签创建的JavaBean实例放在valuestack的栈顶,该标签结束,生成的子集被移出valuestack栈。

除非指定了id属性】

下面是个简单的JavaBean

public class Person

{ privateStringname;

private intage;

    //getter和setter方法省略    ……}

在jsp页面中的代码:

--使用bean标签创建一个lee.Person类的实例-->

bean  name="lee.Person">

--使用Param标签为lee。

Person类的实例传入参数-->

param  name="name" value="'yeeku'"/>

param  name="age"  value="29"/>

property  value="name"/> 

 property value="age"/>

bean>

带id属性的用法:

bean  name="lee.Person" id=“p”>

--使用Param标签为lee。

Person类的实例传入参数-->

param  name="name" value="'yeeku'"/>

param  name="age"  value="29"/>

bean>

property  value="#p.name"/> 

property  value="#p.age"/>

7.checkbox 

checkbox标签输出一个HTML复选框,等价于HTML代码:

代码 

1.

checkbox label="性别" name="user.sex" value="true" fieldValue="dddd"/>  

这里value的值是“假”值,fieldValue的值才是真值。

当value="true"表示这个复选框被选上。

为false时不选上 

另外,它在向html转换后会多出一个隐藏域,很奇怪。

上面的代码输出成html是这样的:

 

代码 

1.  

2. 性别  

8.checkboxlist 

复选框

名称

必需

默认

类型

描述

fieldValue

 

 

true

 

String

 

指定在复选框选中时,实际提交的值

 

 

复选框组,对应Action中的集合

名称

必需

默认

类型

描述

list

 

 

 

CellectionMapEnumerationIteratorarray

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容

listKey

String

指定集合对象中的哪个属性作为选项的value

listValue

 

 

 

String

 

指定集合对象中的哪个属性作为选项的内容

 

例子:

checkboxlistTag.jsp

<%@pagecontentType="text/html;charset=GBK"%>

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

form>

   

checkboxlistname="interest"list="{'足球','篮球','排球','游泳'}"label="兴趣爱好"/>

form>

9.combobox 

combobox标签生成一个单行文本框和下拉列表框的结合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name属性,也就不会产生请求参数。

使用该标签时,需要指定一个list属性,该list属性指定的集合将用于生成列表框。

例子如下:

<%@pagecontentType="text/html;charset=GBK"language="java"%>

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

使用s:</p><p>combobox生成下拉输入框

head/>

使用s:

combobox生成下拉输入框

form>

    

comboboxlabel="请选择您喜欢的图书"theme="css_xhtml"labelposition="top"

        list="{'Spring2.0','J2EE','Ajax'}"

        size="20"maxlength="20"name="book"/>

form>

通过访问上面的JSP页面,我们可以看到上面的文本框,用户可以自行输入,可也以选择下面的checkbox中的内容来进行输入。

需要注意的是,此时的下拉列表仅仅是用于辅助输入的,并没有任何实际意义,因此不能指定它的listKey和listValue属性。

10.conponent 

conponent标签用于使用自定义标签,因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:

theme:

自定义组件所使用的主题,默认使用xhtml主题。

templateDir:

指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。

template:

指定自定义组件所使用的模板。

此外,还可以component标签中使用param标签来注入参数的值。

例子如下:

<%@pagecontentType="text/html;charset=GBK"language="java"%>

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

使用s:</p><p>component标签

使用s:

component标签

使用自定义主题,自定义主题目录
 

从Web应用根路径下加载模板,使用ftl模板。

 

component 

       theme="customTheme" 

       templateDir="customTemplateDir" 

       template="ftlCustomTemplate">

paramname="list"value="{'Spring2.0','J2EE','Ajax'}"/>

component>


    

使用自定义主题,自定义主题目录
 

从Web应用根路径下加载模板,使用JSP模板。

     

component 

       theme="customTheme" 

       templateDir="customTemplateDir" 

       template="jspCustomTemplate.jsp">

paramname="list"value="{'Spring2.0','J2EE','Ajax'}"/>

component>      


使用默认主题(xhtml),默认主题目录(template)
 

从Web应用中加载模板,使用JSP模板。

    

componenttemplate="mytemplate.jsp">

paramname="list"value="{'Spring2.0','J2EE','Ajax'}"/>

component>


 

使用自定义主题,自定义主题目录
 

从/WEB-INF/classes路径下加载模板,使用ftl模板。

    

component

theme="myTheme"

templateDir="myTemplateDir"

template="myAnotherTemplate">

paramname="list"value="{'Spring2.0','J2EE','Ajax'}"/>

component>

上面使用了FreeMarker和JSP模板,FreeMarker模板的ftlCustomTemplate.ftl代码如下:

#bbbbbb;">

FreeMarker自定义模板

请选择您喜欢的图书

<@s.selectlist="parameters.list"/>

JSP模板jspCustomTemplate.jsp的代码如下:

<%@pagecontentType="text/html;charset=GBK"language="java"%>

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

#eeeeee;">

JSP自定义模板

请选择您喜欢的图书

selectlist="parameters.list"/>

11.date 

date标签 用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。

date属性:

format:

 可选,如指定该属性,将根据该属性指定的格式来格式化日期

nice:

 可选,值为true或者false,用于指定是否输出指定日期和当前时刻的时差。

默认是false,即不输出

name:

 必填,指定要格式化的日期

id:

 可选,指定引用该元素的id值

通常,nice属性和format属性不同时指定,(不指定nice属性时,该属性值为false)。

因为指定nice为true,代表输出指定日期和当前时刻的时差;指定format属性,则表明将指定日期按format指定的格式来个格式化输出。

如果即没有指定format,也没指定nice=“true”,则系统会到国际化资源文件中寻找key为struts.date.format的消息,将该消息当成格式化文本来格式化日期。

如果无法找到key为struts.date.format的消息,则默认采用DateFormat.MEDIUM格式输出。

看如下jsp代码:

<%

//生成一个Date实例

java.util.Date now = new java.util.Date(107,12,23,13,23,24);

//将该Date实例设置成一个pageContext里的属性

pageContext.setAttribute("now",now);

%>

1>nice="false",且指定format=“dd/MM/yyyy”

date  name="#attr.now"  format="dd/MM/yyyy" nice=“false”/> 



2>nice="true",且指定format=“dd/MM/yyyy”

date  name="#attr.now"  format="dd/MM/yyyy" nice=“true”/> 



3>指定nice="true"

date  name="#attr.now"   nice=“true”/> 



4>nice="false",且没有指定format

date  name="#attr.now"  nice=“false”/> 



当没有指定nice=“tru

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1