`
kuyuyingzi
  • 浏览: 53337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

struts2基础总结

 
阅读更多

Struts2基础

#的用法:

1、从map栈中取值,

2、从对象栈中值则不用加#号(如果通过set放进对象栈的对象,则通过对象名.属性来取)

%用法:

1、文本框<s:textfieldname="test"value="%{#request.text}"></s:textfield>

2、配置result中使用<resultname="text">ognl/%{#test-url}</result>

3、输出字符串:<s:propertyvalue="%{'<hr>hr'}"escape="false"/>

$用法:

$(对象栈的属性):这样就可以在非struts2标签中使用对象栈的值

Property标签

1escape属性,默认为true,设置为false时,不转义

<s:propertyvalue="%{'<hr>hr'}"escape="false"/>

2default属性,当value的值不存在是,输出默认值

s:propertyvalue="#xixifasf"default="dafhodsh"/>

3<s:property/>:什么属性都不写,表示输出栈顶元素值

Debug标签

<s:debug></s:debug>//利用这个标签可以输出ognlcontext中所有的值

注意:注释(通用)

<!--大家好-->

该注释方法仍然会被编译,如果是纯文本则在源代码中可以显示;如果含有代码,则会编译成对应值输出

<%--<s:setvalue="%{'你好'}"var="aa"scope="request"></s:set>--%>

该注释方法,不回被编译,即使在源代码中也看不到

“valueStack”=OgnlValueStack

.context=OgnlContext

._root=CompoundRoot//对象堆栈

._values=HashMap<K.V>//Map堆栈

.table=HashMap$Entry<K.V>

[2]application对应的地址

[14]session对应的地址

[23]request对应的地址

[24]action对应的地址

[27]parameters对应的地址

.root=CompoundRoot//对象堆栈

elementData=Object[2]

.[0]=ValueStackAction

.[1]=DefaultTextProvider

1<s:debug></s:debug>//利用这个标签可以输出ognlcontext中所有的值

Push标签:

value放到对象栈顶,但只能在内部才能取到对应的值,标签结束,值便消失

<s:pushvalue="%{'大家好'}">

<s:property/>

<s:debug></s:debug>

</s:push>

2测试set标签:<br>

<s:setvalue="#request.request_username"var="aaaaa"scope="request"></s:set>

<s:propertyvalue="#request.aaaaa"/>

说明:这样的情况,aaaaakey值会出现在request域中。

<s:setvalue="#request.request_username"var="aaaaa"></s:set>

<s:propertyvalue="#request.aaaaa"/>

说明:这种写法aaaaa会作为一个key值存在ognlmap中。所以利用

<s:propertyvalue="#aaaaa"/>也能输出值。

3显示map栈中域的值

输出request域中的值<s:propertyvalue="#request.request_name"/><br/>

//attr表示依次在各域中查找

输出session域中的值<s:propertyvalue="#attr.session_name"/><br/>

输出application域中的值<s:propertyvalue="#application.application_name"/>

显示map栈中map的值:<s:propertyvalue="#xixi"/>

4Radio标签

<s:radiolist={'"#male':'','female':''}"name="sex"label="性别"></s:radio><br/>

<!--两者写法效果相同-->

<s:radiolist="#request.map"name="sex"label="性别"/>

4、取值方法

ValueStack的push方法,push(student);将对象直接放到栈顶中去

ValueStack的set方法,set("person",person);将对象放到对象栈的HashMap中去

ValueStack的setValue(“comment”,update)方法,设置栈顶参数值

ValueStack的getValue()方法,获取栈顶参数值getValueininterfaceMap.Entry

Resultname的作用,当一个action中有多个result时,就需要用name来区别

<resultname="scope">ognl/showscope.jsp</result>

5、配置常量

Constantd的配置可以覆盖掉default.properties文件中的,还可以覆盖struts-default.xml,struts-plugin.xml这些xml文件中关于常量的内容

<constantname=struts.ui.themevalue=simple></constant>

注意:value值如果有多个,可以用”,“隔开

6、result中的type

redirectredirectActionchain的区别

定义:当使用type=redirectAction”或type=redirect”提交到一个action并且需要传递一个参数时。

这里是有区别的:

1、使用type=redirectAction”时,结果就只能写Action的配置名,不能带有后缀:“.action

2、使用type=redirect”时,结果应是action配置名+后缀名

Struts2常用标签

不会的时候查看内存快照是个好方法

struts的标签不懂的,拿到页面一看源代码就行了

form默认methodpost

用了ognl表达式action="/userAction_doEdit.action"不用${pageContext.request.contextPath}

讲了表单

radio标签

<s:radiolist="{'JavaEE+Android课程','Net+WindowPhone课程','JavaEE+物联云计算课程'}"

onselect="courseName"name="courseName"label="意向课程"></s:radio>

select标签

s:select

list属性代表数据的来源

listKey相当于option元素中的value属性的值

listValue相当于option元素中要显示的值

headerKey是最上面的option元素的value的值

headerValue是最上面的option元素的要显示的值

name属性,可以实现回显功能

s:checkboxlist

list数据的来源

listKeyvalue的值

listValue显示的值

name必须要有

<!--没有解决默认选中的问题-->

<s:checkboxlistlist="#list"listKey="sid"listValue="sname"name="用户名"></s:checkboxlist>

s:iterator属性都存在map栈中

value数据来源,没有则默认找栈顶元素对象

[var]可选,表示当前迭代对象,当多层循环时要用

status当前元素一些属性值

count遍历了的第几个数据

index正在遍历的索引值

even是否为偶数

odd是否为奇数

说明:迭代的时候,struts2会把元素对象临时放到栈顶,循环结束后删除

格式:

list的迭代

<s:iteratorvalue="#personList"var="pList"status="st">

<trclass="<s:properyvalue="#st.even?'even':'odd'">

<s:porpertyvalue="#pList.pid"/>

<s:porpertyvalue="#pList.pname"/>

<s:porpertyvalue="#st.count"/>

<s:porpertyvalue="#st.index"/>

<s:porpertyvalue="#st.even"/>

<s:porpertyvalue="#st.odd"/>

<s:iterator/>

特别的:将personListpush到栈顶

则修改为<s:iterator>

Map的迭代,value得到的是entry,对应keyvalue

<s:iteratorvalue="#map">

</s:porpertyvalue="key">

</s:porpertyvalue="value.pid">

</s:porpertyvalue="value.pname">

<s:iterator/>

多层的迭代(list<map>)

<s:iteratorvalue="#lists">

<s:iterator[value="top"]>

<s:porpertyvalue="key"/>

</s:porpertyvalue="value.pid">

</s:porpertyvalue="value.pname"/

</s:iterator>

</s:iterator>

ifelse语句

<s:iftest="">

</s:if>

<s:elseiftest="">

</s:elseif>

<s:else>

</s:else>

超级链接语句

<s:aaction=""></s:a>

1、针对struts2.1的版本

如果超级要加一个参数

正确的写法是tagAction_show_href_ifelse?pid=%{pid}

错误的写法是tagAction_show_href_ifelse.action?pid=%{pid}

2EL表达式$ognl表达式问题

ognl标签外部可以使用el表达式,ognl标签内不可以使用

html标签中,只能使用el表达式

<s:aaction="tagAction_show_href_ifelse?pid=${pid}"></s:a>



分享到:
评论

相关推荐

    Struts2基础总结-1

    本文档中总结了struts2的配置文件的介绍,action 类的三种编写方法,Struts2框架执行流程,三种获取jsp中数据的方法,action类中数据封装的方法

    struts2学习总结之基础篇

    struts2学习总结之基础篇,好好学习吧。。。 愿与广大热爱编程人士共享!

    struts基础总结

    该文当内是本人该干刚学习的struts2的一个总结,希望对大家有所帮助!

    struts2的总结,适合初学者

    1、是mvc的基础,其他的框架比如struts1,struts2,webwork都是从servlet基础上发展过来的。所以掌握servlet是掌握mvc的关键。 2、Servlet把最底层的api暴漏给程序员,使程序员更能清楚的了解mvc的各个特点。 3、...

    Struts2基础内容总结下载资料

    集成Struts框架实例和需要的夹包,是学Struts框架入门必备。

    struts基础总结,基于myeclipse

    个人学习struts基础的一些总结,基于myeclipse的............

    struts2详细学习笔记

    这个是本人自学struts2框架时的总结笔记,里面关于struts2的基本知识很是详尽,如果想要进阶的就不要看了,这只是struts2基础的笔记,个人学习用的,绝不掺假!

    Struts2入门教程(全新完整版)

    十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...

    Struts2的Java专题学习网

    综合实训 基于Struts2的Java专题学习网

    review.struts.zip

    Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理...

    struts2+spring+hibernate整合示例

    SSH整合示例(详情见我博客专栏)之前的博客我们总结了spring基础、spring分别整合struts2、hibernate、mybatis等,今天我们来同时整合下 struts、spring、hibernate,也就是所谓的 ssh 。 整合流程: 1 首先整合...

    Struts2+Web常使用的功能经验笔记第1季

    它是在 struts 和WebWork的技术基础上进行了合并,全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得...

    struts2学习笔记

    所有struts2的基础常用配置案例的总结

    OpenID简介及与struts2_spring_hibernate框架集成

    3.2. Struts2的Action调用业务逻辑 - 19 - 3.2.1. 登录Action--OpenIDLoginAction - 19 - 3.2.2. 进入的Action—FirstPageAction - 20 - 3.3. JSP页面 - 20 - 3.4. 运行示例 - 21 - 3.4.1. 登录 - 21 - 3.4.2. ...

    struts2(2).docx

    struts2的请求数据封装,OGNL基本语法和Struts2表单验证等一些基础概念总结和理解,自己考试复习用,不严谨不客观。

    Struts2技术笔记(个人总结的,都有代码示例)

    这个是struts2全部的技术笔记案例 里面有代码(不适合新手看,需要有基础的看 )可以完善技术体系

    Struts基础知识(根据教材总结的)

    总结自《Java Web 开发实践教程》 清华大学出版社 ,加上了一些个人的体会,把原书中表达不是很清楚的地方进行重新描述。

    Struts2_Introduction

    由于班级里面的好多项目都是基于JAVA开发的,因此在学习完一些JAVA基础后,就开始学习Struts,今天是我学习struts的第三天,把这几天学习的内容总结了一些,希望能够帮助到像我一样的新手,也希望高手多多指点,...

    struts2 总结

    structs2基础学习,不过是基于小白级的,学习参考可以

    Java基础+Struts+Spring+Hibernate总结

    这个是我参加Java软件工程师培训后整理的总结,DOC格式,全是精华,花了不少心血整理的

Global site tag (gtag.js) - Google Analytics