`
shunhui19
  • 浏览: 12404 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2中访问Web元素

阅读更多
Struts2中访问Web元素有四种方法,但是一般最常用的就是有"控制反转与依赖注入"思想那种,下面就主要说明最常用的方法:

Struts2中访问Web元素可以从以下三块入手:
   1.Action中向Web元素中添加添加数据:
    a.实现 RequestAware, SessionAware, ApplicationAware接口,通过set方法设置Map类型的Web元素;
    b. 使用put方法向对应的Map对象中添加数据,Struts2将其转换为Web元素;

   2.JSP中取得Web元素中的数据:
    a. 通过<s:property value="" />标签取得相应Web元素中的数据,Web元素名前要加“#”,如#request.key;
    b.也可以直接通过Web元素的getAttribute()方法取得相应的数据。

   3.一般只通过这种方法设置session,Action的属性不需要特殊处理就能直接在JSP中通过request取得。
 

下面举例
   1.web.xml:
01.<?xml version="1.0" encoding="UTF-8"?>
02.<web-app version="2.5"
03.    xmlns="http://java.sun.com/xml/ns/javaee"
04.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
05.    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ;
06.    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
07.  <welcome-file-list>
08.    <welcome-file>hello.jsp</welcome-file>
09.  </welcome-file-list>
10.  <filter>
11.    <filter-name>struts2</filter-name>
12.    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
13.  </filter>
14.  <filter-mapping>
15.    <filter-name>struts2</filter-name>
16.    <url-pattern>/*</url-pattern>
17.  </filter-mapping>
18.</web-app>
---------------------------------------------------------------------------
  2.struts.xml:
01.<?xml version="1.0" encoding="UTF-8" ?>
02.<!DOCTYPE struts PUBLIC
03.    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
04.    "http://struts.apache.org/dtds/struts-2.0.dtd">
05.
06.<struts>
07.    <!--
08.    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
09.    <constant name="struts.devMode" value="false" />
10.
11.    <include file="example.xml"/>
12.
13.
14.
15.    <package name="default" namespace="/" extends="struts-default">
16.        <default-action-ref name="index" />
17.        <action name="index">
18.            <result type="redirectAction">
19.                <param name="actionName">HelloWorld</param>
20.                <param name="namespace">/example</param>
21.            </result>
22.        </action>
23.    </package>
24.     -->
25.
26.    <!-- Add packages here -->
27.    <constant name="struts.devMode" value="true" />
28.    <constant name="struts.i18n.encoding" value="GBK"></constant>
29.     <package name="user" namespace="/" extends="struts-default">
30.        <action name="user" class="org.shunhui.action.UserAction">
31.            <result>/addSuccess.jsp</result>
32.        </action>
33.    </package>
34.</struts>
-------------------------------------------------------------------------
3.UserAction.java:
01.package org.shunhui.action;
02.
03.import java.util.Map;
04.
05.import org.apache.struts2.interceptor.ApplicationAware;
06.import org.apache.struts2.interceptor.RequestAware;
07.import org.apache.struts2.interceptor.SessionAware;
08.
09.import com.opensymphony.xwork2.ActionSupport;
10.
11.public class UserAction extends ActionSupport implements RequestAware, SessionAware, ApplicationAware {
12.
13.    private String userName;
14.    private Map<String, Object> request;
15.    private Map<String, Object> session;
16.    private Map<String, Object> application;
17.    
18.    public String add() {
19.        request.put("userName", userName);
20.        session.put("session", "123");
21.        application.put("app", "456");
22.        return SUCCESS;
23.    }
24.    
25.    public String getUserName() {
26.        return this.userName;
27.    }
28.    
29.    public void setUserName(String userName) {
30.        this.userName = userName;
31.    }
32.
33.    public void setRequest(Map<String, Object> request) {
34.        this.request = request;
35.    }
36.
37.    public void setSession(Map<String, Object> session) {
38.        this.session = session;
39.    }
40.
41.    public void setApplication(Map<String, Object> application) {
42.        this.application = application;
43.    }
44.}
------------------------------------------------------------------------
4.index.jsp:
01.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
02.<%
03.String path = request.getContextPath();
04.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
05.%>
06.
07.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
08.<html>
09.  <head>
10.    <base href="<%=basePath%>">
11.    
12.    <title>Valiation</title>
13.    <meta http-equiv="pragma" content="no-cache">
14.    <meta http-equiv="cache-control" content="no-cache">
15.    <meta http-equiv="expires" content="0">   
16.    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17.    <meta http-equiv="description" content="This is my page">
18.    <!--
19.    <link rel="stylesheet" type="text/css" href="styles.css">
20.    -->
21.  </head>
22.  
23.  <body>
24.    <form action="user!add" method="post">
25.        UserName: <input type="text" name="userName" />
26.        <input type="submit" value="Submit" />
27.    </form>
28.  </body>
29.</html>
-------------------------------------------------------------------
5.addSuccess.jsp:
01.<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
02.<%@ taglib uri="/struts-tags" prefix="s" %>
03.<%
04.String path = request.getContextPath();
05.String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
06.%>
07.
08.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
09.<html>
10.  <head>
11.    <base href="<%=basePath%>">
12.    
13.    <title>AddSuccess</title>
14.    <meta http-equiv="pragma" content="no-cache">
15.    <meta http-equiv="cache-control" content="no-cache">
16.    <meta http-equiv="expires" content="0">   
17.    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18.    <meta http-equiv="description" content="This is my page">
19.    <!--
20.    <link rel="stylesheet" type="text/css" href="styles.css">
21.    -->
22.  </head>
23.  
24.  <body>
25.    User Add Success! <br>
26.    UserName: <s:property value="#request.userName" /><br />
27.    Session: <s:property value="#session.session" /><br />
28.    Application: <s:property value="#application.app" /><br />
29.    <s:debug></s:debug>
30.  </body>
31.</html>
分享到:
评论

相关推荐

    Struts2中访问web元素的例子

    在Struts2中,访问web元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...

    Struts2_访问web元素_accessWebElements_s

    在这个主题“Struts2_访问web元素_accessWebElements_s”中,我们将深入探讨如何在Struts2中有效地访问和操作web元素。 首先,了解Struts2的生命周期至关重要。当一个HTTP请求到达服务器时,Struts2框架会接管请求...

    struts2访问Web元素

    在“struts2访问Web元素”这个主题中,我们主要关注的是如何通过Struts2框架来操作和控制Web页面上的各种元素。这篇博文可能详细介绍了如何在Struts2中与HTML表单、按钮、文本框等交互,以及如何处理用户提交的数据...

    Struts2访问Web元素

    在"Struts2访问Web元素"这个主题中,我们将深入探讨如何在Struts2框架中与网页元素进行交互。 首先,我们需要了解Struts2的核心组件——Action类。Action类是业务逻辑的载体,负责处理用户请求,并返回相应的结果。...

    struts2 访问web元素

    在"Struts2 访问web元素"这个主题中,我们主要探讨的是如何在Struts2框架中与HTML表单、按钮、文本框等web元素进行交互。这涉及到Action类、Result类型以及Struts2提供的强大数据绑定机制。 1. **Action类**:在...

    Struts2学习笔记(7)-访问Web元素

    总结一下,Struts2中访问Web元素的主要方法是通过`ActionContext`获取`request`、`session`和`application`对象,从而实现数据的存储和共享。这些元素对于构建动态Web应用至关重要,因为它们使得服务器能够跟踪和...

    马士兵Struts2笔记2013

    9. **Struts2访问Web元素** Struts2可以通过OGNL(Object-Graph Navigation Language)轻松地访问和操作Web元素,如请求参数、session、application范围内的对象等。 10. **Stack Context** Stack Context是...

    留言板留言板struts2留言板struts2

    2. **Action与ActionMapping**:在Struts2中,业务逻辑通常封装在Action类中。一个Action类对应一个用户请求,处理来自客户端的请求并返回结果。ActionMapping则负责配置Action与URL的映射关系,使得请求能正确路由...

    struts2中的OGNL的源码

    其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...

    Struts2视频教程

    - **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    在Struts2中,配置文件是关键组成部分,主要包括struts.xml。这个文件定义了Action、Result、Interceptor等元素,用于配置应用的行为。Action是处理用户请求的核心,每个Action对应一个业务逻辑。Result是Action执行...

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    - Action类是Struts2中的核心组件之一,负责处理用户的请求并返回相应的结果。 - Action类通常需要实现`Action`接口或继承`ActionSupport`类。 - Action类中可以包含业务逻辑处理、数据校验等操作。 - **使用...

    spring3、struts2、mybatis结合的一个简单web实现

    在Struts2中,Tiles插件可以将多个JSP片段组合成一个完整的视图。通过定义不同的tiles-defs.xml配置文件,我们可以设置多个页面布局,灵活地复用和组织视图元素。 总结起来,"spring3、struts2、mybatis结合的一个...

    Struts2 demo2

    - **对指定action方法校验**: 在Struts2中,可以通过XML配置文件定义特定Action类或方法的数据校验规则,以确保用户输入的有效性。 - **对action的所有方法进行校验**: 这种配置允许全局应用校验规则,适用于...

    struts2中#号的用法

    在Struts2中,`#`符号通常用于访问Ognl表达式中的变量。它支持访问不同的作用域,如当前页面、请求范围、会话范围以及应用程序范围。下面将分别介绍这些不同作用域的访问方式: 1. **当前页面**:当需要访问当前...

    struts2全部的jar包

    在Struts2中,业务逻辑通常由Action类实现,它处理用户的请求并返回一个Result。Result定义了如何展示Action的执行结果,例如转发到一个JSP页面或者生成JSON响应。 3. **配置方式**: Struts2允许开发者使用XML或...

    如何将一个web手工配成struts2

    在Struts2中,我们主要需要配置过滤器来处理请求并将其转发到Struts2框架中。 ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher &lt;filter-name&gt;struts2 ...

    struts2.5 web.xml配置

    在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...

    struts2版本 2.1.6 必须的jar包 和 web.xml 文件的修改

    在Struts2中,`web.xml`是应用的部署描述符,它定义了初始化参数、过滤器、监听器和Servlet等关键元素。以下是你需要关注的部分: 1. **StrutsPrepareAndExecuteFilter** - 配置Struts2的过滤器,负责拦截所有HTTP...

    struts2详细网站访问总人数统计(点击率)

    在Struts2中,可以通过在Action类中添加一个全局变量来记录访问次数,并在每次请求时进行累加。这个计数器可以在session或者application作用域中存储,以确保数据的准确性和持久性。 4. **跟踪用户行为**: 要实现...

Global site tag (gtag.js) - Google Analytics