`

struts2 取值问题

阅读更多
引用

“#”主要有三种用途:

   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.jsp中加入以下代码:
<hr />
    <h3>%的用途</h3>
    <p><s:url value="#foobar['foo1']" /></p>
    <p><s:url value="%{#foobar['foo1']}" /></p>


“$”有两个主要的用途 : 
   1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》
   2. 在Struts 2配置文件中,引用OGNL表达式,如
      <action name="AddPhoto" class="addPhoto">
                  <interceptor-ref name="fileUploadStack" />            
                  <result type="redirect">ListPhotos.action?albumId=${albumId}</result>
              </action>


<!DOCTYPE html PUBLIC 
	"-//W3C//DTD XHTML 1.1 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page import="com.snda.struts2.User" %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Index</title>
<s:head />
</head>
<body>
<s:debug></s:debug>
<%
	//System.out.println(request.getParameter("name"));//取不到值 
	System.out.println(request.getAttribute("name"));//可以取到
	User u = (User) request.getAttribute("user");
	System.out.println(u.getFirstName());
	//System.out.println(user.getFirstName());

	//Object oa = request.getAttribute("struts.valueStack");
	//System.out.println(oa);
%>
${name}
<br />
${user.firstName}
${user.name}
<s:property value="name"/>
<!--  值栈取值是要考虑深度的 -->
<s:property value="[0].name" />
<s:property value="[1].name" />
<s:property value="[2].name" />
<s:property value="[3].name" />
<s:property value="[4].name" />
${number}
<s:property value="number" />
request 属性是 ${requestScope.name}<br> 
session 属性是 ${sessionScope.name}<br> 
application 属性是 ${applicationScope.name}<br> 
<!-- 取url参数的 -->
param 属性是${param.name}<br>
<!-- 可以取到 -->
<s:property value="#request['name']"/>
<s:property value="#parameters['name']"/>
<s:property value="#session['name']"/>
<s:property value="#application['name']"/>
</body>
</html>

分享到:
评论

相关推荐

    Struts2页面取值总结

    ### Struts2页面取值与标签使用详解 #### 引言 在Web应用开发中,Struts2框架因其强大的功能和灵活的配置受到广大开发者青睐。本文将深度解析Struts2框架中页面取值的多种方式及核心标签的使用技巧,帮助开发者更...

    struts2 配置dtd 自动提示

    Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在配置Struts2时,通常会使用一个名为`struts.xml`的配置文件,该文件定义了应用程序的行为和组件。为了在开发环境中获得更...

    struts2学习心得

    2. Struts2不需要注意线程同步的问题,而Struts1则面临这个问题,因为Struts1对action创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。而对Struts2来说,需要action时都要重新new...

    Struts2 ——4、struts2从请求取值的三种方式

    在Struts2中,从请求取值是日常开发中的常见操作,有三种主要的方式可以实现这一功能。本篇将详细介绍这三种方法。 1. **Action上下文(ActionContext)** ActionContext是Struts2中一个关键的类,它提供了访问...

    Struts标签取值方式

    当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可; 当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或 者#attr.;

    struts2国际化 标签 页面 处理类

    Struts2是一个流行的Java web框架,它提供了强大的国际化支持,帮助开发者创建多语言的应用程序。在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们...

    Struts2 Value Stack Contents 中取值、多个集合数组

    在使用Struts2框架进行Web应用开发时,经常会遇到需要从Value Stack(值栈)中获取数据的场景,尤其是在表单验证中。Struts2的Value Stack是一种可以方便地在Action和JSP页面之间传递数据的机制。本文将详细介绍如何...

    struts2实现国际化

    Struts2是一个非常流行的Java Web框架,用于构建可维护、高效且易于扩展的企业级应用程序。在Web应用中,实现国际化(i18n)是一项重要功能,它允许应用程序支持多种语言,以满足全球用户的需求。Struts2提供了一种...

    [黑马程序员Struts2 2016版视频] 前3Days笔记

    Struts2是Java Web开发中一个非常重要的框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了一种结构化、易于维护的Web应用开发方式。本笔记主要涵盖的是黑马程序员2016年推出的Struts2教程的前3天...

    struts2 +jquey uploadify3.2 实现多文件上传

    struts2 +jquey uploadify3 2 实现多文件上传 可以运行的myeclipse工程 绝对好用 访问方式http: 127 0 0 1:8080 Struts2Uploadify upload jsp uploadify 使用说明: &lt;a href &quot;javascript:$ &quot;#file ...

    牧紫小岩的Struts2学习笔记

    Struts2允许客户端产生的参数在`struts.xml`中通过`${}`语法进行取值,这里的取值并非来自EL表达式,而是从`StackContext`中获取,这是一种不同于传统EL表达式的参数处理方式。 #### MVC模式与Struts2架构 MVC...

    struts2.rar

    4. **值栈(Value Stack)**:值栈是Struts2用来存储和传递数据的机制,它可以将Action的属性和OGNL(Object-Graph Navigation Language)表达式关联起来,简化视图层的取值操作。 5. **插件支持**:Struts2拥有...

    struts2取到页面的值

    在Struts2框架中,获取页面表单提交的值是一个常见的需求,这涉及到Struts2如何解析请求参数、如何在Action类中访问这些参数以及如何处理复杂的对象模型。以下将详细解析Struits2中获取页面值的方法,包括基本类型...

    Xwork——Struts2核心

    ### Xwork——Struts2核心 #### Xwork与Struts2的关系 Xwork作为Struts2的核心组件之一,它的设计理念和技术实现对整个Struts2框架起着决定性的作用。Struts2是一个流行的Java Web开发框架,它采用了MVC(Model-...

    struts2复习资料

    Struts2是一个经典的Java Web框架,它用于构建MVC(模型-视图-控制器)架构的应用程序。在复习Struts2的知识时,有几个关键点值得深入理解和掌握。 1. **Struts2常量配置**: - `struts.devMode`:这是一个用于...

    Struts2教程-2(私塾在线)视频配套学习资料

    ### Struts2 标签库详解 #### 一、引言 随着Web应用程序的日益复杂化,框架在软件开发中的作用越来越重要。Struts2作为Java Web开发领域中一款非常流行的MVC框架,以其易用性和灵活性而著称。本教程旨在通过一系列...

    Struts2 原理及搭建

    3. **OGNL(Object-Graph Navigation Language)表达式**:Struts2使用OGNL作为默认的表达式语言,它允许在Action和视图之间传递数据,如取值、赋值、方法调用等。OGNL的强大在于其灵活性,可以方便地处理复杂的数据...

    struts2基于xml验证(最常用的三种类型String、Date、int验证).doc

    在探讨Struts2框架中的XML验证机制时,我们聚焦于三种最常见的数据类型验证:String、Date、int。这些验证在Web应用开发中至关重要,确保了数据的完整性和正确性,从而提高了应用程序的健壮性和用户体验。 ### 一、...

    struts中base标签的target属性

    2. **_self**:这是默认值,表示链接将在同一个浏览器窗口或框架中打开。大多数情况下,如果不需要特殊指定目标窗口,则可以省略 `target` 属性。 3. **_parent**:表示链接将在包含当前框架的父框架中打开。这通常...

    struts2-jasperreport-plugin-adjust2.1

    adjust2.0解决了三个问题:1、普通报表HTML及Excel格式预览px图片无法显示;2、图形报表HTML格式预览无法显示;3、图形报表一次请求返回多张时存在报表覆盖异常现象; adjust2.1是针对adjust2.0做的一点改进,添加了...

Global site tag (gtag.js) - Google Analytics