- DMI(动态方法调用),就是实现在一个Action里面实现多个控制处理逻辑,有一下几种方法可以实现,具体讲解穿插在代码中
- 要使用DMI,先要在Struts.xml中将动态方法调用开启,即在Struts.xml的struts标签下加上
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
- 要使用DMI,先要在Struts.xml中将动态方法调用开启,即在Struts.xml的struts标签下加上
-
新建一个java类充当Action
package action; import static com.opensymphony.xwork2.Action.*; /** * Demo class * * @author lin * @date 2018/11/9 */ public class TestAction { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String execute(){ String standardName = "a"; String name = getName(); if( standardName.equals(name)){ return SUCCESS; }else { return ERROR; } } }
-
配置Struts.xml,这是 最关键的一步,先贴代码
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="test" extends="struts-default"> <action name="*_Support" class="action.TestAction" method="{1}"> <result name="success">ok!.jsp</result> <result name="error">error.jsp</result> <allowed-methods>execute</allowed-methods> </action> </package> </struts>
-
action的名字为*_action,就是说在jsp页面中action的对象为a_action,b_action都行,他们对应执行的方法是Action里的a方法,b方法了。
-
这里只有execute方法,将他放在allowed-methods里,这样jsp就可以访问到这个方法了,如果有多个方法的话,用逗号隔开。
-
-
jsp页面,将表单内容交到execute_Support这个action里去,那么就会执行action里的execute方法了。
<%@ taglib prefix="s" uri="/struts-tags" %> <%-- Created by IntelliJ IDEA. User: 11955 Date: 2018/11/9 Time: 15:08 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body/> <s:form action="execute_Support" method="POST"> <s:textfield name="name"/> <s:submit name="submit"/> </s:form> </body> </html>
-
整个项目的结构
Sturts2 (2)DMI
猜你喜欢
转载自blog.csdn.net/weixin_39452731/article/details/83904966
今日推荐
周排行