Struts2动态方法的调用

动态调用有两种方法:
1.我们可以使用!+方法名调用指定的方法.
action代码如下
package com.renwen.action;
public class HelloWorldAction {

private String message;
public String getMessage() {
return message;
}
public String execute() throws Exception{
      this.message="execute";
return "success";
}
public String other() throws Exception{
this.message="other";
return "success";
}
}
假设访问上面action的URL路径为: /struts/test/helloworld.action
要访问action的other() 方法,我们可以这样调用:
/struts/test/helloworld!other.action
这种方法是不推荐使用的,如果不想使用动态方法调用,我们可以通过常量struts.enable.DynamicMethodInvocation关闭动态方法调用。
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

2.使用通配符定义action
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>
<!-- <include file="employee.xml"></include>
<include file="department.xml"></include>
-->
<constant name="struts.serve.static.browserCache" value="false"/>

<constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
<package name="renwen" namespace="/renwen/test" extends="struts-default">
<action name="helloworld*" class="com.renwen.action.HelloWorldAction"
method="{1}">
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
message.jsp页面如下
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>第一个struts2应用</title>
  </head>
  <body>
   ${message} <br>
     </body>
</html>
要访问other()方法,可以通过这样的URL访问:/renwen/test/helloworldother.action
以上就是我们的两种不同的方法

你可能感兴趣的:(apache,Web,xml,jsp,struts)