摘要: 1、Action配置的各项默认值 (1)、如果没有为action指定class,默认是ActionSupport。 (2)、如果没有为action指定method,默认执行action中的execute()方法。 (3)、如果没有为action指定result,默认值 ...
1、Action配置的各项默认值
(1)、如果没有为action指定class,默认是ActionSupport。
(2)、如果没有为action指定method,默认执行action中的execute()方法。
(3)、如果没有为action指定result,默认值为success。
2、result配置的各种试图转发类型
<result type="">...</result>
其中type的常用类型有:
dispatcher(默认值) ->转发
redirect ->重定向
redirectAction ->重定向的action在别的命名空间下
如:<result type="redirectAction">
<param name="actionName">helloworld</param>
<param name="nameSpace">/test</param>
</result>
plainText ->显示原始文件内容
如:<result type="">
<param name="location">/xxx.jsp</param>
<!--指定读取文件的编码-->
<param name="charSet">UTF-8</param>
</result>
注意:在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性名
如:<result name="success" type="redirect">/index.jsp?username=${username}</result>
3、为应用指定多个struts配置文件
在大部分应用里,随着应用规模的增加,系统中Action数量也大量增加,导致struts.xml配置文件变得非常臃肿。为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。下面的struts.xml通过<include>元素指定多个配置文件:
<?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>
<include file="struts-user.xml"/>
<include file="struts-order.xml"/>
</struts>
通过这种方式,我们就可以将Struts 2的Action按模块配置在多个配置文件中。
以下为模拟案例
目录结构
HelloWordAction action类
package com.ljq.action;
import java.net.URLEncoder;
public class HelloWordAction {
private String msg;
private String username;
public String msg(){
msg = "我的第一个Struts2应用";
return "msg";
}
public String list() throws Exception{
//对中文进行编码
msg = "我的第一个Struts2应用";
this.username=URLEncoder.encode("林计钦","UTF-8");
return "list";
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
message.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>message</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>
<b>${msg }</b>
</body>
</html>
index.jsp页面
<%@ page language="java" import="java.util.*,java.net.*" 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>HelloWord</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>
<%--
<result name="list" type="redirect">不会显示${msg }的值
<result name="list" type="dispatcher">会显示${msg }的值
--%>
${msg }<br/>
<%--获取url的请求参数 --%>
<%--${param.username }会出现乱码 --%>
${param.username }<br/>
<%=URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8"),"UTF-8")%>
</body>
</html>
helloworld_struts.xml子配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"struts-2.0.dtd">
<struts>
<!-- 全局result:有很多时候一个result可供很多action使用,这时可以使用global-results标签来定义全局的result -->
<package name="base" extends="struts-default">
<global-results>
<result name="msg">/message.jsp</result>
</global-results>
</package>
<package name="helloWord" namespace="/helloWord" extends="base" >
<!-- 访问路径: http://localhost:8083/struts2_1/helloWord/manage.do -->
<action name="manage" class="com.ljq.action.HelloWordAction" method="msg"></action>
<!-- 访问路径: http://localhost:8083/struts2_1/helloWord/listHelloWord.do
http://localhost:8083/struts2_1/helloWord/msgHelloWord.do
-->
<action name="*HelloWord" class="com.ljq.action.HelloWordAction" method="{1}">
<!-- 注意:在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性名 -->
<result name="list" type="redirect">/index.jsp?username=${username}</result>
</action>
</package>
</struts>
struts.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"struts-2.0.dtd">
<struts>
<!-- 该属性指定需要Struts2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。
如果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开。 -->
<constant name="struts.action.extension" value="do,php" />
<!--解决乱码 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默认的视图主题 -->
<constant name="struts.ui.theme" value="simple" />
<!--<constant name="struts.objectFactory" value="spring" />-->
<!-- 动态方法调用和使用通配符定义 -->
<!--该属性设置Struts2是否支持动态方法调用,该属性的默认值为true。如果需要关闭动态方法调用,则可设置该为false -->
<!--<constant name="struts.enable.DynamicMethodInvocation" value="false" />-->
<!--上传文件的大小设置(这里的大小指的是总大小)-->
<!--<constant name="struts.multipart.maxSize" value="10701096" />-->
<!-- 引入 -->
<include file="helloworld_struts.xml" />
</struts>
<!--注意:Struts2读取到Struts2.xml的内容后,以JavaBean形式存放在内存中。-->
<!--以后Struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取Struts2.xml文件-->
运行结果
1、访问路径: http://localhost:8083/struts2_1/helloWord/manage.do
分享到:
相关推荐
在 Struts2 框架中,Redirect 和 Redirect-action 是两个不同的 Result 配置类型。Redirect 配置用于重定向到一个新的 URL,而 Redirect-action 配置用于重定向到一个 Action。 Redirect-action 配置可以省略后缀名...
这篇博文将深入探讨Struts2中的result配置以及各种视图转发类型。 首先,让我们理解Result的基本概念。在Struts2的配置文件(如struts.xml)中,每个Action可以有多个结果,每个结果对应一个特定的视图。Result配置...
本教程重点关注的是Action配置及其默认值,这对于理解和使用Struts2框架至关重要。 在Struts2中,Action类是业务逻辑的执行者,它处理用户请求并返回结果到视图。Action配置主要通过`struts.xml`或`struts....
**Result** 在 Struts2 配置文件(通常是 struts.xml)中被定义,用来指定 Action 处理完业务逻辑后如何响应客户端请求。例如,可以配置 Result 来重定向到另一个 JSP 页面或者另一个 Action。 当开发者希望在 ...
Struts2 Result类型是Struts2框架中一个关键的概念,它是动作执行完成后跳转到下一个页面或处理逻辑的核心机制。Result类型定义了如何处理动作执行的结果,使得开发者能够灵活地控制应用程序的流程。 首先,我们...
`struts.xml` 文件是Struts2的核心配置文件之一,主要负责管理和定义应用程序中的Action映射以及相关的Result定义。具体来说,该文件包括以下几个关键部分: 1. **Action 映射**: - 指定每个Action的名称、执行的...
在Struts2框架中,有多个重要的配置文件用于控制应用的行为与结构,其中最核心的是`struts.xml`文件。此外还包括`web.xml`、`struts.properties`、`struts-default.xml`等。 - **web.xml**:它是Web应用的部署描述...
在Struts2的配置文件(通常为struts.xml或struts.properties)中,我们定义Action的映射规则,包括请求路径、方法调用以及结果视图等。默认情况下,一个Action类对应一个请求URL,但通过特定配置,可以让一个Action...
在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...
在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。在Struts2中,Action是业务逻辑的核心组件,而Result是控制流程的关键部分,它定义了Action执行后如何展示结果。Result Type...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
### Struts2配置文件中的Result详解 在Struts2框架中,`result`是一个非常重要的概念,它主要用于定义Action执行完成后页面的跳转规则。本文将深入探讨Struts2配置文件中`result`的配置方法及其不同的类型,并通过...
在Struts2的配置文件(通常为struts.xml或struts-default.xml)中,我们需要为每个方法定义一个action节点,指定方法名、结果类型和其他相关属性。例如: ```xml <action name="method1" class=...
在Struts2中,Result是Action执行后控制流程的重要组件,它定义了Action执行完毕后如何转发或重定向到一个新的页面。"redirectAction"是Struts2中的一种Result类型,专门用于实现HTTP级别的重定向。 重定向是一种...
在Struts2中,Result Type是由`struts-default.xml`配置文件中的`<package>`元素的`defaultResultType`属性指定的,默认情况下,这个值通常是“dispatcher”,意味着Action完成后会使用Dispatcher Result来渲染JSP...
在深入了解Struts2框架时,我们不可避免地会接触到各种参数配置。这些配置对于整个框架的运行至关重要。本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地理解和掌握Struts2的核心功能。 #### 二、...
在Struts2框架中,每个动作(Action)都可能有多个结果(Result),这些结果是由配置文件(如struts.xml)中的`<result>`标签定义的。当一个Action执行完成后,根据其返回值,Struts2会寻找匹配的结果类型并执行相应...
### Struts2_Action 学习笔记与通配符配置详解 #### 一、Struts2简介及简单配置 Struts2是一个基于Java EE平台的开源Web应用框架,它继承了Struts1的优点,并在此基础上进行了大量的改进。Struts2的核心功能之一是...
总之,手动配置Struts2涉及多个层面,包括库的添加、核心配置文件的编写、web.xml的过滤器配置、Action的编写以及插件的使用。理解并熟练掌握这些配置,将有助于我们更好地利用Struts2框架构建高效、可扩展的Java ...