struts中动态调用

在一个project里面,index page如下:

<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>

<% String context = request.getContextPath(); %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
Action执行的时候并不一定要执行execute方法<br />
可以在配置文件中配置Action的时候用method=来指定执行哪个方法
也可以在url地址中动态指定(动态方法调用DMI)(推荐)<br />
    <a href="<%=context %>/user/userAdd">添加用户</a>
    <br />
    <a href="<%=context %>/user/user!add">添加用户</a>
    <br />
前者会产生太多的action,所以不推荐使用
    
</body>
</html>

 

黑色部分即是所谓的动态调用,意味找到struts.xml里action name为user的action:

<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
            <result>/user_add_success.jsp</result>
        </action>

然后到com.bjsxt.struts2.user.action.UserAction:

package com.bjsxt.struts2.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {
    public String add() {
        return SUCCESS;
    }
    
    
}

里面调用为add的method,就是user!add所表达的意思,这就是动态调用

posted on 2012-03-08 08:14  friday295  阅读(132)  评论(0编辑  收藏  举报

导航