`
suhuanzheng7784877
  • 浏览: 704442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47751
社区版块
存档分类
最新评论

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

阅读更多

1.       前言

ApacheStruts2已经是很流行的MVC Web框架了,很多Web开发人员都是使用它做为Web框架。它是在 struts WebWork的技术基础上进行了合并,全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。因为Struts 2Struts 1有着太大的变化,但是相对于WebWorkStruts 2只有很小的变化。像Struts2的常用配置功能笔者就不在说了,在此结合作者的Web相关技术(Struts2JSTLEL……)使用经验做个总结,希望与您有个共鸣。

2.       判断标签<s:if>

当在request域里面的对象需要判断的时候,可以选用<s:if>,当然Struts2的所有标签都必须在一个Action转向后才能使用的,直接访问一个JSP就使用Struts2的标签,报错。

例如:

<s:if test="%{#session.customer==null}">

    <A class=buy-btn href="#" title="登录才能抢购">抢购</A>

</s:if>

<s:if test="%{#session.customer!=null}">

    <A class=buy-btn

        href="proAction!buyProductBefor.action?products.id=${products.id}"

       title="登录才能抢购">抢购</A>

</s:if>

 

3.       在页面中访问变量(#%$

OGNL是通常要结合Struts 2的标志一起使用。主要是#%$这三个符号的使用。

一般使用JSP内置对象域的变量的时候(applicationsessionrequestparameters)都需要使用Struts标签+#来进行访问,一般用于访问Session里面的变量。

例如:

<s:if test="%{#session.customer!=null}">

或者

<s:property value="%{#application.myApplicationAttribute}" />
<s:property value="%{#session.mySessionAttribute}" />
<s:property value="%{#request.myRequestAttribute}" />
<s:property value="%{#parameters.myParameter}" />

Struts2标签中访问内置对象的变量的时候前面得用%{}将变量括起来。

 

如果在Action中被注入的对象在ValueStack域中的时候,在页面中可以直接采用el表达式来访问变量。

例如:

<TD><STRONG class=original>${products.sourcePrice}</STRONG></TD>

 

如果变量显示的在Action中直接赋值(set)给了requestsession域中后,在页面也可以直接使用el表达式来进行访问,但是这里仅仅只是显示,并不能在Struts2标签中判断、计算等。代码如下。

你好,${session.customer.name}

 

一般Struts2标签要配合OGNL表达式一齐使用,包括一些运算、判断、取子字符串等等。在此引用别人博客(http://www.iteye.com/problems/51144)上的一段话

“#”主要有三种用途:
1.
访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:  

名称 作用 例子
parameters
:包含当前HTTP请求参数的Map

#parameters.id[0]作用相当于request.getParameter("id")

 

Request:包含当前HttpServletRequest的属性(attribute)Map

#request.userName相当于request.getAttribute("userName")

 

Session:包含当前HttpSession的属性(attribute)的Map

#session.userName相当于session.getAttribute("userName")

 

Application:包含当前应用的ServletContext的属性(attribute)的Map #application.userName相当于application.getAttribute("userName")

 

Attr:用于按request > session > application顺序访问其属性(attribute

#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止

2.用于过滤和投影(projecting)集合,如books.{?#this.price<100}
3.
构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}


“%”符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。

“$”有两个主要的用途,用于在国际化资源文件中,引用OGNL表达式。在Struts 2配置文件中,引用OGNL表达式。

 

4.       JSTL格式化数字

一般用到整数、小数格式化的时候可以直接用JSTL来处理。

使用jstlfmt标签可以对页面的值进行格式化、国际化显示等功能。

引入标签:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

保留整数,小数后一位永远是0

<fmt:formatNumber value="${(products.nowPrice/products.sourcePrice)*10}" pattern="#.0" /> </STRONG>

保留两位小数

<!--保留2位小数点,格式化数字-->

<STRONG>£¤<fmt:formatNumber value="${products.sourcePrice-products.nowPrice}" pattern="#.##" minFractionDigits="2" /></STRONG>

 

读取资源文件

<fmt:message key="global.add" />

 

 

5.       Struts2日期标签格式化日期

代码如下

<TD class=order-num>

<s:date name="#orderProductListVar.orders.orderDate" format="yyyy-MM-dd HH:mm:ss" />

</TD>

显示出来得值就是2011-01-10 21:09:26

 

6.       利用Struts2错误标签显示Action中显示发生的错误

<s:fielderror>

    <s:param>errorMessage</s:param>

</s:fielderror>

其中errorMessageAction中错误域中的key

 

7.       利用Struts2标签得到字符串长度和截取子字符串

<!--判断字符串长度-->

<s:if test="%{#productsListVar.productMess.length()>=40}">

    <s:property value="#productsListVar.productMess.substring(0,40)" />...

</s:if>

<s:else>

    <s:property value="#productsListVar.productMess" />

</s:else>

 

分享到:
评论

相关推荐

    struts2综合笔记

    ### Struts2 综合知识点...综上所述,Struts2 是一个功能强大且灵活的 MVC 框架,适用于构建复杂的 Web 应用程序。通过深入理解其核心概念和技术细节,开发者能够充分利用 Struts2 的优势来提升开发效率和应用性能。

    Struts2笔记+Hibernate3.6笔记+Spring3笔记

    SSH是Java开发中广泛使用的三大框架——Struts2、Hibernate和Spring的缩写。这三大框架结合使用,能够构建高效、灵活的企业级Web应用程序。现在,让我们深入探讨这些框架的知识点。 **Struts2笔记** Struts2是MVC...

    Struts1及14. Struts2学习笔记

    Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java EE的Web应用程序。它提供了MVC(Model-View-Controller)设计模式的实现,帮助开发者更好地组织和管理代码,提升开发效率。本学习笔记...

    Struts2笔记

    2. **`struts2-plugin.xml`**:如果使用了第三方插件,该文件中会包含这些插件的配置信息。 3. **`struts.xml`**:应用级别的配置文件,用于配置Action、拦截器栈等。 4. **`struts.properties`**:包含了一些框架级...

    struts2.1.8+spring2.5+hibernate3.2+ext3.0框架整合笔记(三)

    1. **Struts2**:Struts2是一个强大的基于MVC设计模式的Web应用框架,它提供了一种组织应用程序的方式,使得代码结构清晰,易于维护。它的核心是Action类,用于处理用户的请求,并通过Result返回相应的视图。Struts2...

    struts2框架学习笔记整理

    ### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...

    SSH项目(spring+hibernate+struts2)

    SSH项目是一种经典的Java Web开发框架组合,由Spring、Hibernate和Struts2三个开源框架组成。这个项目示例提供了一个基于这些技术的简单应用,帮助开发者理解如何将它们整合在一起进行实际开发。 **Spring框架**是...

    Struts2_Action学习笔记、通配符{1},{2}

    ### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    struts2培训笔记

    #### 三、第一个Struts2案例:快速上手 1. **创建Struts2项目**: - **Jar文件**:添加必要的Struts2核心库和其他依赖库。 - **struts.xml**:配置文件,放在项目的src目录下。 - **web.xml**:配置Struts2的...

    servlet和struts2笔记

    ### servlet和struts2笔记 #### 一、Servlet 基础 **Servlet** 是 Java Web 开发中的一种核心技术,它被设计用于处理客户端发送到服务器的 HTTP 请求,并且能够生成响应。Servlet 可以看作是服务器端的小程序,...

    黑马程序员_struts2框架2016版视频_struts2_day01笔记

    - **Struts2**:融合了Struts1的易用性和WebWork的强大功能,提供了一种更高效的Web应用程序开发方式。 #### 1.3 Struts2的开发包结构 在使用Struts2框架时,开发者需要导入一系列的jar包。课程中使用的是**struts...

    struts2学习笔记1-HelloWorld项目

    "的问候语,这标志着你的第一个Struts2应用已经成功运行。 在实际开发中,Struts2提供了许多高级特性,如拦截器、结果类型、动态方法调用、国际化支持等。这些特性使得Struts2不仅可以处理简单的HTTP请求,还能应对...

    struts2教程-学习笔记.zip

    它可能会讲解如何创建第一个Struts2应用,包括控制器的设置、视图的展示和模型数据的处理。此外,可能还会涉及Action结果、国际化、异常处理和文件上传下载等特性。 "struts2学习笔记.doc"可能是一位经验丰富的...

    Struts2_day01笔记

    学习Struts2第一天的笔记

    赵栋struts2 笔记

    Struts2是一个强大的Java web开发框架,...以上就是赵栋Struts2笔记中的核心知识点,这些内容对于理解和使用Struts2框架进行Java Web开发至关重要。学习和掌握这些知识,可以帮助开发者更有效地构建和管理Web应用程序。

    【张冰Struts2学习笔记】0102_第一个Struts2实例

    【张冰Struts2学习笔记】0102_第一个Struts2实例 在Java Web开发领域,Struts2框架是十分重要的MVC(模型-视图-控制器)架构之一,它极大地简化了Web应用程序的开发流程。这篇学习笔记将带你入门Struts2,通过创建...

    Struts2学习笔记

    2. **环境搭建**:(一)环境搭建.txt可能包含了安装和配置Struts2框架的基础步骤,这通常包括添加Struts2库到项目依赖、配置web.xml文件、创建第一个Struts2应用等。 3. **UploadServlet.java**:在Struts2中,...

    SSH笔记_Struts2配置

    - Struts2有许多官方和第三方插件,如i18n、json、freemarker等,它们的配置在`struts-plugin.xml`中完成。 8. **Action与Service层整合** - Spring管理Service层对象,Struts2通过Spring插件注入Service,实现...

Global site tag (gtag.js) - Google Analytics