• Struts2 动态调用方法


    struts2动态调用方法有两种方式

    方式一:用通配符进行调用:

    Action方法:

     1 package com.bjyinfu.struts.actions;
     2 
     3 public class CatchDynamicMethod {
     4 
     5     public String doFirst(){
     6         System.out.println("执行doFirst方法");
     7         return "success";
     8     }
     9 
    10     public String doSecond(){
    11         System.out.println("执行doSecond方法");
    12         return "success";
    13     }
    14 }

    Struts2中注册方法:(注:method对应得是占位符从1开始,在提交请求的时候,*是什么,method对应的就是什么,也就是说提交请求的时候,*对应的应该是对应的方法名称)

    1 <struts>
    2 
    3   <package name="dynamic" namespace="/dynamic" extends="default">
    4         <action name="execute_*" class="com.bjyinfu.struts.actions.CatchDynamicMethod" method="{1}">
    5             <result name="success">/welcome01.jsp</result>        
    6         </action>
    7     </package>
    8     
    9 </struts>

    展示页面:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>My First Struts2 Project</title>
     8 </head>
     9 <body>
    10     welcome01 page
    11 </body>
    12 </html>

    (方法一就是讲通配符*换成方法名即可)

    方法二:开启常量设置实现动态调用方法:

    再Struts2.xml配置文件中注册方法的时候,将常量"struts.enable.DynamicMethodInvocation"开启

    1 <struts>
    2   <constant name="struts.enable.DynamicMethodInvocation" value="true"/>
    3     <package name="dynamic" namespace="/dynamic" extends="default">
    4         <action name="execute" class="com.bjyinfu.struts.actions.CatchDynamicMethod">
    5             <result name="success">/welcome01.jsp</result>        
    6         </action>
    7     </package>
    8 </struts>

    地址栏访问的时候,http://127.0.0.1:8080/projectName/dynamic/execute!方法名.action

  • 相关阅读:
    建立连接数据库时要输入哪些信息?
    如何建立一个JDBC程序?
    如何在网上找MySQL数据库的JDBC驱动jar包?
    gorm连接mysql数据库
    Django ORM的骚操作
    Python 发送企业微信单发和群发机器人
    python获取指定间隔日期列表
    表名小写_set.all()再根据字段过滤
    foreignkey相关的参数
    Django 模型层-多表操作
  • 原文地址:https://www.cnblogs.com/lubolin/p/7251588.html
Copyright © 2020-2023  润新知