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>
<!-- 该属性设置struts2是否支持动态方法调用,该值默认为:true,如果要关闭动态方法调用,则可以设置为:false -->
<constant name="struts.enable.DynamicMethodInvocation"
value="false" />
<package name="taink" namespace="/control/employee"
extends="struts-default">
<action name="list_*" method="{1}"
class="org.taink.struts.action.HelloWorldAction">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
action.java
------------------------------------------------------------------------------------------------------------------------------
package org.taink.struts.action;
// struts2 采用无入侵设计(即不依赖其它框架,类,jar的支持)
public class HelloWorldAction {
private String message;
public String getMessage() {
return message;
}
public String addUI() {
message = "addUI";
return "success";
}
public String execute() {
message = "execute";
return "success";
}
}
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 page</title>
</head>
<body>
value:${message}
</body>
</html>
分享到:
相关推荐
例如,你可以设置一个`execute`方法来处理默认请求,而其他方法则通过通配符调用。 在实际开发中,我们还可以结合Struts2的拦截器(Interceptor)进行更复杂的逻辑处理,如权限验证、日志记录等。拦截器可以在...
Struts2会根据URL中的部分替换通配符,并尝试调用Action类中的方法。如果找不到与之匹配的方法,Struts2将会回退到默认的执行方法(通常是`execute`)。 为了更高效地利用这一特性,我们需要遵循以下几点: 1. 方法...
在 Struts2 中,我们可以使用不同的方式来动态调用 Action 的指定方法,例如使用表单提交、struts.xml 配置、通配符方法等方式。此外,我们还可以配置默认的 Action 和全局结果,以便更好地管理我们的应用程序。
例如,我们可以定义一个Action,然后使用不同的参数值来调用不同的Action方法。这样可以减少Action的数量,简化配置,提高代码复用。 3. **通配符**: Struts2的通配符功能是动态方法调用的关键。在配置文件中,...
例如,在`UserAction`类中,可以通过不同的URL参数来调用不同的方法: ```java public class UserAction extends ActionSupport { public String add() { return SUCCESS; } public String delete() { return...
动态方法调用(Dynamic Method Invocation,DMI)是Struts框架中的一个重要特性,允许开发者根据不同的请求调用Action类的不同方法,实现灵活的业务逻辑处理。在本例中,我们讨论的是如何结合通配符来更高效地使用...
在上面的示例中,我们使用动态方法来调用Action类中的方法“query”。动态方法的使用需要将其属性改为true,如下所示: 三、常见问题 在使用通配符和动态方法时,经常会看到一些错误提示,例如: * Struts ...
在Struts2的配置中,通配符(Wildcard)的使用是一个非常实用的功能,它使得URL映射更加灵活,减少了重复配置。下面将详细解释Struts2通配符的用法,并结合示例代码进行解析。 1. **Struts2通配符概述** Struts2的...
通过以上示例可以看出,在Struts2框架中使用通配符可以显著减少配置文件的工作量,使得配置更为简洁。但同时也要注意到,为了能够有效利用通配符,需要事先制定一套明确的命名规则。此外,虽然通配符可以简化配置,...
例如,当用户访问`addCrud.action`时,Struts2将调用`example.Crud`类中的`add()`方法。 ###### 4.2.2 使用特定字符作为分隔符 ```xml <action name="crud_*" class="example.Crud" method="{1}"> </action> ``` ...
这篇博客可能详细解释了如何在Struts2框架中使用通配符配置来简化Action配置。 通配符配置的核心思想是通过使用特殊字符(如*)来匹配多个Action名称。例如,如果你有一个处理所有用户操作的通用Action,你可以使用...
但通过`method`属性,我们可以指定特定的请求调用Action类中的不同方法。例如: ```xml <action name="myAction" class="com.example.MyAction"> <result name="saveSuccess">/success.jsp ...
通配符方式允许我们在配置中使用通配符来匹配多个Action。这提高了灵活性,减少了配置量。例如: ```xml <action name="user_*" class="com.example.UserAction"> <result type="dispatcher">/${actionName}....
在上面的配置中,我们使用通配符 `*` 来指定方法名,例如 `HelloWorld_add`。这样,当我们访问 `HelloWorld_add.action` 时,Struts2 将调用 `HelloWorldAction` 中的 `add` 方法。 Java 类实现 对应的 Java 类...
然而,动态方法调用允许开发者不通过硬编码的方式来调用Action类的方法。这种机制使得Action类的设计更加灵活,减少了因为URL改变而修改代码的情况。在Struts2.1中,动态方法调用通过配置`struts.enable.Dynamic...
总结来说,Struts2配置文件中的通配符使用极大地提高了配置的灵活性,减少了重复代码,简化了Action和方法的映射。通过不同的形式,我们可以方便地处理Action之间的共性和差异性,同时也能根据Action的执行结果动态...
这可以通过在配置文件中使用`method`属性来实现,增强了代码的可读性和可维护性。 `Struts2_0600_ActionWildcard`则介绍了Action路径中的通配符使用。通配符允许我们创建更通用的Action映射,减少重复配置,例如,...
动态方法调用是Struts2提供的一种机制,允许用户在表单提交时指定一个Action实例下的特定方法来处理请求。在HTML表单中,`action`属性不再是直接指向Action类的名字,而是以`ActionName!methodName.action`的形式...