Struts2中Action的动态调用方法

在Struts2中,Action执行的时候并不一定要执行execute,我们可以指定Action执行哪个方法,下面分别介绍三种方法来指定Action执行哪个方法:

1.第一种方法,通过Action里的method属性指定执行方法,我们可以在struts.xml配置文件中配置Action的时候用method=" "来指定执行的哪个方法。

(1).接下来附上一个例子,通过第一种方法来指定执行方法,首先,复制一个已经搭建好struts2环境的web项目,这里我们复制ActionTest这个项目,然后粘贴,出现下图:

修改项目名称,点击OK:

然后在选中ActionMethod这个项目,右键选择Properties,根据下图箭头提示信息修改即可:

把上图的WebContext-root修改成/ActionMethod即可,点击OK按钮,再点击弹出来的框的finish按钮即可,然后删除我们不需要的页面等。

(2).首先新建一个UserAction.java类,放在com.gk.user包下,继承于ActionSupport类,里面有3个方法,一个login()方法,,一个add()方法,一个delete()方法,用来指定Action中method这个属性所要执行的方法,代码如下:

package com.gk.user;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{public String login(){return "success";}public String add(){return "success";}public String delete(){return "success";}}

(3).接着打开我们所需要的index.jsp页面,改编码为utf-8,然后给这个页面添加三个超链接,代码如下:

<%@ 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>My JSP 'index.jsp' starting page</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><a href="userlogin">用户登录</a><a href="useradd">添加用户</a><a href="userdelete">删除用户</a> </body></html>

其中超链接标记<a>里面的href属性值是action名字,即在struts.xml文件里action的name属性。

(4).接下来新建三个jsp页面,改编码为utf-8,当点击用户登录的时候,通过action来转发到User_login.jsp页面,当点击添加用户时,通过action转发到User_add.jsp页面,当点击删除用户时,通过action转发到User_delete.jsp页面,代码分别如下:

User_login.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>My JSP 'login.jsp' starting page</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> <center> <form action="/xxx" method="post">用户名:<input type="text" name="username"/><br>密码:<input type="password" name="password"/><br><input type="submit" value="提交"/></form></center> </body></html>

User_add.jsp页面:

要知道,当你一直在担心错过了什么的时候,

Struts2中Action的动态调用方法

相关文章:

你感兴趣的文章:

标签云: