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元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...
在这个主题“Struts2_访问web元素_accessWebElements_s”中,我们将深入探讨如何在Struts2中有效地访问和操作web元素。 首先,了解Struts2的生命周期至关重要。当一个HTTP请求到达服务器时,Struts2框架会接管请求...
在“struts2访问Web元素”这个主题中,我们主要关注的是如何通过Struts2框架来操作和控制Web页面上的各种元素。这篇博文可能详细介绍了如何在Struts2中与HTML表单、按钮、文本框等交互,以及如何处理用户提交的数据...
在"Struts2访问Web元素"这个主题中,我们将深入探讨如何在Struts2框架中与网页元素进行交互。 首先,我们需要了解Struts2的核心组件——Action类。Action类是业务逻辑的载体,负责处理用户请求,并返回相应的结果。...
在"Struts2 访问web元素"这个主题中,我们主要探讨的是如何在Struts2框架中与HTML表单、按钮、文本框等web元素进行交互。这涉及到Action类、Result类型以及Struts2提供的强大数据绑定机制。 1. **Action类**:在...
总结一下,Struts2中访问Web元素的主要方法是通过`ActionContext`获取`request`、`session`和`application`对象,从而实现数据的存储和共享。这些元素对于构建动态Web应用至关重要,因为它们使得服务器能够跟踪和...
9. **Struts2访问Web元素** Struts2可以通过OGNL(Object-Graph Navigation Language)轻松地访问和操作Web元素,如请求参数、session、application范围内的对象等。 10. **Stack Context** Stack Context是...
2. **Action与ActionMapping**:在Struts2中,业务逻辑通常封装在Action类中。一个Action类对应一个用户请求,处理来自客户端的请求并返回结果。ActionMapping则负责配置Action与URL的映射关系,使得请求能正确路由...
其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...
- **适用范围**:Struts2广泛应用于企业级Java Web项目的开发中,特别是那些需要处理大量用户交互和数据展示的应用。 #### 二、Struts2入门案例 - **Hello Struts2**:通过创建一个简单的“Hello World”示例,...
在Struts2中,配置文件是关键组成部分,主要包括struts.xml。这个文件定义了Action、Result、Interceptor等元素,用于配置应用的行为。Action是处理用户请求的核心,每个Action对应一个业务逻辑。Result是Action执行...
- Action类是Struts2中的核心组件之一,负责处理用户的请求并返回相应的结果。 - Action类通常需要实现`Action`接口或继承`ActionSupport`类。 - Action类中可以包含业务逻辑处理、数据校验等操作。 - **使用...
在Struts2中,Tiles插件可以将多个JSP片段组合成一个完整的视图。通过定义不同的tiles-defs.xml配置文件,我们可以设置多个页面布局,灵活地复用和组织视图元素。 总结起来,"spring3、struts2、mybatis结合的一个...
- **对指定action方法校验**: 在Struts2中,可以通过XML配置文件定义特定Action类或方法的数据校验规则,以确保用户输入的有效性。 - **对action的所有方法进行校验**: 这种配置允许全局应用校验规则,适用于...
在Struts2中,`#`符号通常用于访问Ognl表达式中的变量。它支持访问不同的作用域,如当前页面、请求范围、会话范围以及应用程序范围。下面将分别介绍这些不同作用域的访问方式: 1. **当前页面**:当需要访问当前...
在Struts2中,业务逻辑通常由Action类实现,它处理用户的请求并返回一个Result。Result定义了如何展示Action的执行结果,例如转发到一个JSP页面或者生成JSON响应。 3. **配置方式**: Struts2允许开发者使用XML或...
在Struts2中,我们主要需要配置过滤器来处理请求并将其转发到Struts2框架中。 ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher <filter-name>struts2 ...
在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...
在Struts2中,`web.xml`是应用的部署描述符,它定义了初始化参数、过滤器、监听器和Servlet等关键元素。以下是你需要关注的部分: 1. **StrutsPrepareAndExecuteFilter** - 配置Struts2的过滤器,负责拦截所有HTTP...
在Struts2中,可以通过在Action类中添加一个全局变量来记录访问次数,并在每次请求时进行累加。这个计数器可以在session或者application作用域中存储,以确保数据的准确性和持久性。 4. **跟踪用户行为**: 要实现...