最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

struts中動(dòng)態(tài)方法調(diào)用使用通配符

 更新時(shí)間:2016年09月07日 15:45:03   作者:布拉格1973  
這篇文章主要介紹了struts中動(dòng)態(tài)方法調(diào)用使用通配符的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧

一、DMI動(dòng)態(tài)方法調(diào)用的其中一種改變form表單中action屬性的方式已經(jīng)講過了。還有兩種,一種是改變struts.xml配置文件中action標(biāo)簽中的method屬性,來指定執(zhí)行不同的方法處理不同的業(yè)務(wù)邏輯;另外一種是使用通配符的方式。改變method屬性的方式需要配置多個(gè)action,而且這些action定義的絕大部分都是相同的,所以這種定義是相當(dāng)冗余的。因此,使用通配符就可以在一個(gè)action標(biāo)簽中代替多個(gè)邏輯處理的Action。

二、示范:(和之前的動(dòng)態(tài)方法調(diào)用改變form表單action屬性差不多,在struts.xml配置文件上進(jìn)行了小小的修改。)

    要求還是沒有變,點(diǎn)擊不同的提交按鈕提交同一個(gè)表單,把不同的業(yè)務(wù)交給相同的Action處理類去處理。

    ⒈首先顯示一個(gè)表單,表單中有兩個(gè)提交按鈕,但分別代表不同的業(yè)務(wù)。當(dāng)點(diǎn)擊登錄時(shí)用戶登錄;當(dāng)點(diǎn)擊注冊時(shí)用戶注冊。

   ?、灿脩舻卿洠?br />

   ?、秤脩糇裕骸 ?br />

  具體的代碼如下:

    ⑴、登錄注冊頁面(index.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="js/jquery-1.7.2.js"></script>
<title>index</title>
<script type="text/javascript">
$(function(){
$("input:eq(3)").click(function(){
/*動(dòng)態(tài)修改表單中的action屬性值,實(shí)現(xiàn)把注冊的請求提交給Action類 */ 
$("#form").attr("action","Create");
});
});
</script>
</head>
<body>
<form action="Login" method="post" id="form">
姓名:<input type="text" name="name" /><br><br>
密碼:<input type="password" name="password" /><br><br>
<input type="submit" value="登錄">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="注冊">
</form>
</body>
</html>

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="myP" extends="struts-default">
<action name="*" class="action.Action" method="{1}">
<result name="userLogin">WEB-INF/jsp/userLogin.jsp</result>
<result name="userCreate">WEB-INF/jsp/userCreate.jsp</result>
</action>
</package>
</struts>

      解析:

        1、在這份配置文件中,對(duì)action標(biāo)簽中的name屬性配置了一個(gè)通配符: "*",后面的method屬性值則為: {1}。

        2、意思就是當(dāng)用戶在index.jsp頁面點(diǎn)擊了登錄按鈕,那么就會(huì)把表單:中的action="Login"請求傳給struts,因?yàn)樵趕truts.xml中進(jìn)行了通配符的配置,所以就把 "*"當(dāng)成是"Login",也就是name="Login"。而后面的method值為:{1}代表的是第一個(gè)"*",也就是metho="Login"。所以struts會(huì)去action.Action類中尋找到Login方法并且調(diào)用。如果用戶點(diǎn)擊了注冊按鈕,那么也和點(diǎn)擊登錄按鈕是一樣流程了。具體可以自己寫一個(gè)小例子感受一下。

       ⑶、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";
}
}

  當(dāng)然,通配符的使用不僅僅是只有這么簡單的一個(gè),還可能是有: "*-*"、"Book_*" 等,這些通配符可以在struts.xml配置文件中action標(biāo)簽的屬性中使用,如mthod、class屬性,也可以在result標(biāo)簽中使用,如下:

<!--定義一個(gè)通用的action標(biāo)簽-->
<action name="*">
<!--使用表達(dá)式定義Result標(biāo)簽-->
<result>/WEB-INF/jsp/{1}.jsp</result>
</action> 

    在上面的action定義中,action的name是一個(gè)*,那么就是可以匹配任意的Action,所有的請求都通過這個(gè)action來處理,因?yàn)檫@個(gè)action沒有class屬性,所以使用ActionSupport類來處理,因?yàn)闆]有method屬性,所以默認(rèn)是execute方法并且返回success字符串,而且在result標(biāo)簽中name屬性默認(rèn)是success,所以Action總是直接返回result中指定的jsp資源,因此上面的action定義的含義是:如果用戶請求a.action那么就跳轉(zhuǎn)到a.jsp;如果請求b.action就跳轉(zhuǎn)到b.jsp。

以上所述是小編給大家介紹的struts中動(dòng)態(tài)方法調(diào)用使用通配符,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java輸出Hello World完美過程解析

    Java輸出Hello World完美過程解析

    當(dāng)我們學(xué)習(xí)一門編程語言的時(shí)候,我們都會(huì)先學(xué)如何輸出Hello World!本文通過幾個(gè)例子給大家介紹輸出Hello World的代碼,感興趣的朋友一起看看吧
    2021-06-06
  • Java 通過AQS實(shí)現(xiàn)數(shù)據(jù)組織

    Java 通過AQS實(shí)現(xiàn)數(shù)據(jù)組織

    這篇文章主要介紹了通過AQS實(shí)現(xiàn)數(shù)據(jù)組織,想了解AQS的同學(xué)可以參考下
    2021-04-04
  • 詳解Spring Security 簡單配置

    詳解Spring Security 簡單配置

    本篇文章主要介紹了詳解Spring Security 簡單配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Spring和SpringMVC掃描注解類沖突的解決方案

    Spring和SpringMVC掃描注解類沖突的解決方案

    這篇文章主要介紹了Spring和SpringMVC掃描注解類沖突的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中indexOf()的用法小結(jié)

    Java中indexOf()的用法小結(jié)

    這篇文章主要介紹了Java中indexOf()的用法小結(jié),indexOf()有四種方法,用來查找某個(gè)字符或字符串的位置,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java入門案列之猜拳小游戲

    Java入門案列之猜拳小游戲

    這篇文章主要為大家詳細(xì)介紹了Java入門案列之猜拳小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Spring接口ApplicationRunner用法詳解

    Spring接口ApplicationRunner用法詳解

    這篇文章主要介紹了Spring接口ApplicationRunner的作用和使用介紹,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 使用React和Java實(shí)現(xiàn)文本摘要小工具

    使用React和Java實(shí)現(xiàn)文本摘要小工具

    本文將詳細(xì)介紹如何使用 React 和 Java 搭建一個(gè)小型文本摘要工具,并基于 Hugging Face 提供的 API 來實(shí)現(xiàn)智能摘要功能,感興趣的可以了解下
    2024-11-11
  • Java Http請求傳json數(shù)據(jù)亂碼問題的解決

    Java Http請求傳json數(shù)據(jù)亂碼問題的解決

    這篇文章主要介紹了Java Http請求傳json數(shù)據(jù)亂碼問題的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 基于resty orm的ActiveRecord操作數(shù)據(jù)指南

    基于resty orm的ActiveRecord操作數(shù)據(jù)指南

    這篇文章主要為大家介紹了基于resty orm的ActiveRecord操作數(shù)據(jù)指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03

最新評(píng)論

普兰县| 广州市| 兴隆县| 朝阳市| 阜宁县| 奇台县| 沾化县| 永兴县| 蒙阴县| 清新县| 甘德县| 弥渡县| 二手房| 忻城县| 麻江县| 麻阳| 高唐县| 广水市| 大庆市| 建水县| 满洲里市| 彭州市| 和静县| 柯坪县| 灵川县| 丹江口市| 商水县| 宜黄县| 嘉定区| 响水县| 东乡族自治县| 深水埗区| 安图县| 石阡县| 云霄县| 延吉市| 奇台县| 乐安县| 富川| 东乌| 西藏|