`
zds420
  • 浏览: 203583 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Struts2 Action 访问web 元素、Action模块包含、默认Action

 
阅读更多
<%@ 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_访问web元素_accessWebElements_s

    总结起来,“Struts2_访问web元素_accessWebElements_s”这个主题涵盖了Struts2框架中如何在Action类和视图层之间传递和处理web元素数据的方法。理解这些机制对于有效开发Struts2应用至关重要。在实际项目中,开发者...

    Struts2中访问web元素的例子

    拦截器是Struts2的一大特色,我们可以在拦截器中处理请求和响应,包括访问web元素。例如,创建一个拦截器来获取请求参数: ```java public class MyInterceptor implements Interceptor { @Override public ...

    struts2访问Web元素

    在博文链接中提到的ITEye_VisitWebElement可能详细介绍了如何使用Struts2访问和操作DOM(文档对象模型)中的Web元素,这可能包括JavaScript的DOM API与Struts2的结合使用,或者是使用AJAX技术来异步更新页面内容。...

    struts2 访问web元素

    在实际项目中,理解并熟练掌握以上知识点对于有效利用Struts2访问和处理web元素至关重要。通过合理的配置和编程,可以创建出高效、可维护的web应用。同时,了解源码和使用相关工具(如IDEA的Struts2插件)能帮助我们...

    Struts2访问Web元素

    总的来说,"Struts2访问Web元素"这个主题涵盖了Struts2框架中Action类的使用、表单数据绑定、页面交互、插件集成以及源码阅读等多个方面。熟练掌握这些知识点,不仅能提升开发效率,也能使我们编写出更健壮、可维护...

    struts2 模块包含

    1. **Action配置**:在Struts2的配置文件(如struts.xml)中,每个Action元素代表一个模块。Action元素包含了与该模块相关的配置信息,如类名、结果页面、拦截器等。 2. **Interceptor拦截器**:拦截器是Struts2...

    解决使用struts2 时 访问web工程首页问题

    1. **访问Web应用首页时报错**:这是由于Struts2的拦截器默认会拦截所有进入Web应用的请求,包括对首页的访问。如果首页对应的Action没有正确配置,则会导致异常。 2. **welcome file设置无效**:Web应用通常会在`...

    struts 2 action 动态调用

    如上所示,我们添加了`method="doAdd"`属性,这意味着当访问`test.action`时,Struts 2将调用`doAdd()`方法。 **5. JSP 页面显示** 在JSP页面中,可以使用EL表达式来获取Action中设置的值。 ```jsp ; charset=...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    struts2 使用action属性接收中文参数(post提交)

    Struts2是一个流行的Java web框架,它用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含...

    Struts2 in action中文版+配套源代码

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认的表达式语言,用于在Action与视图之间传递数据,支持动态属性访问和方法调用。 6. **插件系统**:Struts2拥有丰富的插件库,如Tiles、...

    Struts2 in action(struts2实战)

    - **XML配置**:传统的Struts2配置通常在struts.xml文件中进行,定义Action、Result和Interceptor等元素。 - **注解配置**:Struts2也支持使用Java注解来简化配置,直接在Action类或方法上添加注解即可。 3. **...

    struts2 Action 包 命名空间 servlet API

    3. `org.apache.struts2.dispatcher`:这是Struts2的核心包,其中包含Dispatcher类,它负责初始化以及调用Action的execute()方法。 4. `org.apache.struts2.impl`:扩展了XWork的核心功能,定义了StrutsActionProxy...

    struts2笔记之动态调用Action指定方法及默认Action

    Struts2 动态调用 Action 指定方法及默认 Action 配置 Struts2 框架中,一个 Action 可以包含多个处理逻辑,而不是只有一个 execute() 方法。在实际开发中,我们经常需要在一个 Action 中实现多个处理逻辑,这样...

    Struts2实战(Struts2 In Action中文版)

    1. **Struts2基础**:介绍Struts2的基本概念,包括配置文件、Action类、结果类型和视图解析。 2. **OGNL表达式语言**:Struts2使用OGNL(Object-Graph Navigation Language)进行数据绑定和表达式操作,学习如何...

    Struts2_Action

    在Action类中,还可以访问Web元素,比如HttpServletRequest和HttpServletResponse等,利用Struts2提供的API能够很便捷地实现这一功能。 此外,Struts2还提供了动态方法调用的机制,允许你在一个Action类中定义多种...

    struts2 action 返回json方法(一)源码

    默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。...

    精通Struts 2:Web 2.0开发实战

    Struts 2使用OGNL作为默认的表达式语言,用于在Action和View之间传递数据。OGNL允许开发者直接访问对象的属性,进行动态计算和表达式求值,使得数据绑定变得更加简单。 5. **Web 2.0开发** 在Web 2.0时代,用户...

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

Global site tag (gtag.js) - Google Analytics