首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

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

2012-10-24 
Struts2 Action 访问web 元素、Action模块包含、默认Action%@ page languagejava importjava.util.*

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" 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>

热点排行