- 浏览: 203583 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
materigirl:
实例化的引用变量没有调用toString()方法当然没用了。 ...
Java 泛型之简单类型的多参数类型 -
zds420:
xiaojianhx 写道如果action分散在不同的包里面要 ...
Struts2 Action 通配符 -
xiaojianhx:
如果action分散在不同的包里面要如何配置呢?如:
com. ...
Struts2 Action 通配符 -
zds420:
Zhang987526341 写道求lz 详细说说,我复制您的 ...
COOKIE IP地址限制投票次数 -
Zhang987526341:
求lz 详细说说,我复制您的代码后,要怎么改啊 。。初学者,求 ...
COOKIE IP地址限制投票次数
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'web_001.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> Request:<s:property value="#request.web_request_key"/><br/> Session:<s:property value="#session.web_session_key"/><br/> Application:<s:property value="#application.web_application_key"/><br/> 用户名: <s:property value="#request.user_name"/><br/> 密 码: <s:property value="#request.password"/><br/> 学 校: <s:property value="#request.school"/><br/> 描 述: <s:property value="#request.remark"/><br/> <s:debug></s:debug> </body> </html>
Struts2 中Action 访问web 元素
是指Action中访问request,session,application中的数据。
request,session,application ,HttpServletRequest,HttpSession,ServletContext
前三者都有依赖Container,IOC,后三者也有,Conctainer,IOC
使用最多的也就是前三者的IOC(控制反转)。
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> Struts2中访问Web 元素有四种方法。 其中使用最多最常用的就是"控制反转和依赖注入"思想.<br/> <br/> 常用方法开发基本步骤:<br/> 1:Action 访问Web元素需要实现接口实现<br/> 实现RequestAware,SessionAware,ApplicatoinAware接口<br/> 使用setXxx()方法设置Map值。<br/> 2: 通过使用struts.xml配置<br/> 3:视图展示结果<br/> 通过使用<s:property name=""/> 获取的数据值可以使用#request.key #session.key #application.key<br/> <br/> 举例如下: web 元素 <!-- //领域模型页面传递参数 name名称的定义 <form action="/web_action/web.action"> 用户名:<input name="user_model.user_name" value="" maxlength="50"/><br/> 密 码:<input name="user_model.password" value="" maxlength="50"/><br/> 学 校:<input name="user_model.school" value="" maxlength="50"/><br/> 描 述:<input name="user_model.remark" value="" maxlength="50"/><br/> <input type="submit" name="submit" value="提交"/> </form> --> <form action="/web_action/web.action"> 用户名:<input name="user_name" value="" maxlength="50"/><br/> 密 码:<input name="password" value="" maxlength="50"/><br/> 学 校:<input name="school" value="" maxlength="50"/><br/> 描 述:<input name="remark" value="" maxlength="50"/><br/> <input type="submit" name="submit" value="提交"/> </form> </body> </html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="i18n" value="utf-8"></constant> <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="default" namespace="/" extends="struts-default"> <default-action-ref name="index" /> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping exception="java.lang.Exception" result="error"/> </global-exception-mappings> <action name="index"> <result type="redirectAction"> <param name="actionName">HelloWorld</param> <param name="namespace">/example</param> </result> </action> </package> <include file="example.xml"/> --> <!-- Add packages here --> <!-- 默认ACTION的执行 <package name="default" namespace="/" extends="struts-default"> <action name="helloworld"> <result>/helloworld.jsp</result> </action> </package> --> <package name="web" namespace="/web_action" extends="struts-default"> <action name="web" class="com.summary.action.AccessWebElementsDemo01" method="add"> <result name="success">/path_file/web_001.jsp</result> </action> </package> </struts>
package com.summary.action; import java.util.Map; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.interceptor.ApplicationAware; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.summary.model.UserModel; public class AccessWebElementsDemo01 extends ActionSupport implements ModelDriven<UserModel>,RequestAware,SessionAware,ApplicationAware{ /** * */ private static final long serialVersionUID = -1843136642468284550L; private Map<String, Object> request; private Map<String, Object> session; private Map<String, Object> application; //域模型接受参数需要实例化此域模型 使用领域模型有哥缺点就是在视图展示页面中出现;名称为:领域模型实力对象.对象名 如:<input name="user_model.user_name" value="" maxlength="50"/> //private UserModel user_model; //属性接受参数 /* private String user_name; private String password; private String school; private String remark; */ //领域模型驱动 private UserModel user_model = new UserModel(); public String add() { System.out.println("========访问web元素======="); request.put("web_request_key", "web_request_value"); request.put("user_name", user_model.getUser_name()); request.put("password", user_model.getPassword() ); request.put("school", user_model.getSchool()); request.put("remark", user_model.getRemark()); session.put("web_session_key", "web_session_value"); application.put("web_application_key", "web_application_value"); return SUCCESS; } public Map<String, Object> getRequest() { return request; } public void setRequest(Map<String, Object> request) { this.request = request; } public Map<String, Object> getSession() { return session; } public void setSession(Map<String, Object> session) { this.session = session; } public Map<String, Object> getApplication() { return application; } public void setApplication(Map<String, Object> application) { this.application = application; } /* public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public UserModel getUser_model() { return user_model; } public void setUser_model(UserModel user_model) { this.user_model = user_model; } */ //领域模型 务必重写getModel()方法 public UserModel getModel() { return user_model; } }
package com.summary.model; public class UserModel { private String user_name=""; private String password=""; private String school=""; private String remark=""; public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } }
Action模块包含,其实模块包含就是使用struts.xml文件中的<include file="*.xml"/>
Action的默认Action是通过使用
<default-action-ref name="index"></default-action-ref>
<default-action-ref name="index"></default-action-ref>
<default-class-ref class="com.demo.action.DemoAction01"></default-class-ref>
<default-interceptor-ref name="xxx"></default-interceptor-ref>
发表评论
-
Struts2 项目之分析和设计
2011-12-27 10:48 720项目之分析和设计 项目/产品开发步骤如下: ... -
STRUTS2 国际化(I18N)
2011-12-12 19:41 1000STRUTS2 国际化:1:I18N原理 packag ... -
Struts2的拦截器基本原理
2011-12-12 18:14 845Struts2的拦截器基本原理 主要是通过jav ... -
Struts2 异常处理
2011-12-12 17:26 987Struts2 异常处理机制 任何程序设计语言都是有异常 ... -
Struts2 之struts tags
2011-12-12 17:12 1025Struts2 的struts 标签 实战 ... -
Struts2 OGNL
2011-12-12 17:09 851Struts2 OGNL OGNL是Objec ... -
Struts2 Result 实例
2011-12-05 18:50 11121:Action result type 常用的四种类 ... -
Struts2 之Result
2011-12-03 13:27 752在struts2框架中,当act ... -
Struts2 Action 通配符
2011-12-01 11:06 1087Struts2 Action 通配符 在stru ... -
Struts2 Action接受参数、简单数据验证
2011-12-01 10:55 937Struts2 Action接受参数 STEP 1: ... -
Struts2的动态方法调用
2011-11-29 10:19 1202Struts2的动态方法调用 在struts2中,可 ... -
struts2的路径和通配符
2011-11-28 19:07 997struts2的路径1) 在struts2中的路径问题是根据a ... -
Struts2 之Action
2011-11-25 17:11 724在Struts2中 Action 的操作可以在struts.x ... -
Struts2 之ACTION的namespace
2011-11-25 14:07 923struts2的命名空间分为两类: 1)默认命名空 ... -
Struts2 入门概述
2011-11-25 11:05 855Struts2 入门概述 Struts2 主要是通过导 ... -
Struts2 简介、设计思想、 核心 、流程
2011-11-25 10:47 1158切忌:做事情的条理性和管理自己的习惯性,不能到处乱 ...
相关推荐
总结起来,“Struts2_访问web元素_accessWebElements_s”这个主题涵盖了Struts2框架中如何在Action类和视图层之间传递和处理web元素数据的方法。理解这些机制对于有效开发Struts2应用至关重要。在实际项目中,开发者...
拦截器是Struts2的一大特色,我们可以在拦截器中处理请求和响应,包括访问web元素。例如,创建一个拦截器来获取请求参数: ```java public class MyInterceptor implements Interceptor { @Override public ...
在博文链接中提到的ITEye_VisitWebElement可能详细介绍了如何使用Struts2访问和操作DOM(文档对象模型)中的Web元素,这可能包括JavaScript的DOM API与Struts2的结合使用,或者是使用AJAX技术来异步更新页面内容。...
在实际项目中,理解并熟练掌握以上知识点对于有效利用Struts2访问和处理web元素至关重要。通过合理的配置和编程,可以创建出高效、可维护的web应用。同时,了解源码和使用相关工具(如IDEA的Struts2插件)能帮助我们...
总的来说,"Struts2访问Web元素"这个主题涵盖了Struts2框架中Action类的使用、表单数据绑定、页面交互、插件集成以及源码阅读等多个方面。熟练掌握这些知识点,不仅能提升开发效率,也能使我们编写出更健壮、可维护...
1. **Action配置**:在Struts2的配置文件(如struts.xml)中,每个Action元素代表一个模块。Action元素包含了与该模块相关的配置信息,如类名、结果页面、拦截器等。 2. **Interceptor拦截器**:拦截器是Struts2...
1. **访问Web应用首页时报错**:这是由于Struts2的拦截器默认会拦截所有进入Web应用的请求,包括对首页的访问。如果首页对应的Action没有正确配置,则会导致异常。 2. **welcome file设置无效**:Web应用通常会在`...
如上所示,我们添加了`method="doAdd"`属性,这意味着当访问`test.action`时,Struts 2将调用`doAdd()`方法。 **5. JSP 页面显示** 在JSP页面中,可以使用EL表达式来获取Action中设置的值。 ```jsp ; charset=...
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
Struts2是一个流行的Java web框架,它用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含...
5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据,支持动态属性访问和方法调用。 6. **插件系统**:Struts2拥有丰富的插件库,如Tiles、...
- **XML配置**:传统的Struts2配置通常在struts.xml文件中进行,定义Action、Result和Interceptor等元素。 - **注解配置**:Struts2也支持使用Java注解来简化配置,直接在Action类或方法上添加注解即可。 3. **...
3. `org.apache.struts2.dispatcher`:这是Struts2的核心包,其中包含Dispatcher类,它负责初始化以及调用Action的execute()方法。 4. `org.apache.struts2.impl`:扩展了XWork的核心功能,定义了StrutsActionProxy...
Struts2 动态调用 Action 指定方法及默认 Action 配置 Struts2 框架中,一个 Action 可以包含多个处理逻辑,而不是只有一个 execute() 方法。在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样...
1. **Struts2基础**:介绍Struts2的基本概念,包括配置文件、Action类、结果类型和视图解析。 2. **OGNL表达式语言**:Struts2使用OGNL(Object-Graph Navigation Language)进行数据绑定和表达式操作,学习如何...
在Action类中,还可以访问Web元素,比如HttpServletRequest和HttpServletResponse等,利用Struts2提供的API能够很便捷地实现这一功能。 此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种...
默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。...
Struts 2使用OGNL作为默认的表达式语言,用于在Action和View之间传递数据。OGNL允许开发者直接访问对象的属性,进行动态计算和表达式求值,使得数据绑定变得更加简单。 5. **Web 2.0开发** 在Web 2.0时代,用户...
根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...