struts中动态方法调用使用通配符

网友投稿 186 2023-07-07


struts中动态方法调用使用通配符

一、DMI动态方法调用的其中一种改变form表单中action属性的方式已经讲过了。还有两种,一种是改变struts.xml配置文件中action标签中的method属性,来指定执行不同的方法处理不同的业务逻辑;另外一种是使用通配符的方式。改变method属性的方式需要配置多个action,而且这些action定义的绝大部分都是相同的,所以这种定义是相当冗余的。因此,使用通配符就可以在一个action标签中代替多个逻辑处理的Action。

二、示范:(和之前的动态方法调用改变form表单action属性差不多,在struts.xml配置文件上进行了小小的修改。)

要求还是没有变,点击不同的提交按钮提交同一个表单,把不同的业务交给相同的Action处理类去处理。

⒈首先显示一个表单,表单中有两个提交按钮,但分别代表不同的业务。当点击登录时用户登录;当点击注册时用户注册。

⒉用户登录:

⒊用户注册:

具体的代码如下:

⑴、登录注册页面(index.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

姓名:

密码:

            

⑵、struts.xml配置文件的代码

"-//ApaczlvZOtshe Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

WEB-INF/jsp/userLogin.jsp

WEB-INF/jsp/userCreate.jsp

解析:

1、在这份配置文件中,对action标签中的name属性配置了一个通配符: "*",后面的method属性值则为: {1}。

⑶、Action类的代码:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class Action extends ActionSupport {

private String name;public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}public String Login(){

System.out.println("用户登录");

return "userLogin";

}

public String Create(){

System.out.println("用户注册");

return "userCreate";

}

}

当然,通配符的使用不仅仅是只有这么简单的一http://个,还可能是有: "*-*"、"Book_*" 等,这些通配符可以在struts.xml配置文件中action标签的属性中使用,如mthod、class属性,也可以在result标签中使用,如下:

/WEB-INF/jsp/{1}.jsp

在上面的action定义中,action的name是一个*,那么就是可以匹配任意的Action,所有的请求都通过这个action来处理,因为这个action没有class属性,所以使用ActionSupport类来处理,因为没有method属性,所以默认是execute方法并且返回success字符串,而且在result标签中name属性默认是success,所以Action总是直接返回result中指定的jsp资源,因此上面的action定义的含义是:如果用户请求a.action那么就跳转到a.jsp;如果请求b.action就跳转到b.jsp。

以上所述是给大家介绍的struts中动态方法调用使用通配符,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JavaWeb Spring开发入门深入学习
下一篇:JavaWeb Spring依赖注入深入学习
相关文章

 发表评论

暂时没有评论,来抢沙发吧~