程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> struts中靜態辦法挪用應用通配符

struts中靜態辦法挪用應用通配符

編輯:關於JAVA

struts中靜態辦法挪用應用通配符。本站提示廣大學習愛好者:(struts中靜態辦法挪用應用通配符)文章只能為提供參考,不一定能成為您想要的結果。以下是struts中靜態辦法挪用應用通配符正文


1、DMI靜態辦法挪用的個中一種轉變form表單中action屬性的方法曾經講過了。還有兩種,一種是轉變struts.xml設置裝備擺設文件中action標簽中的method屬性,來指定履行分歧的辦法處置分歧的營業邏輯;別的一種是應用通配符的方法。轉變method屬性的方法須要設置裝備擺設多個action,並且這些action界說的絕年夜部門都是雷同的,所以這類界說是相當冗余的。是以,應用通配符便可以在一個action標簽中取代多個邏輯處置的Action。

2、示范:(和之前的靜態辦法挪用轉變form表單action屬性差不多,在struts.xml設置裝備擺設文件長進行了小小的修正。)

    請求照樣沒有變,點擊分歧的提交按鈕提交統一個表單,把分歧的營業交給雷同的Action處置類行止理。

    ⒈起首顯示一個表單,表單中有兩個提交按鈕,但分離代表分歧的營業。當點擊登錄時用戶登錄;當點擊注冊時用戶注冊。

    ⒉用戶登錄:

    ⒊用戶注冊:  

  詳細的代碼以下:

    ⑴、登錄注冊頁面(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(){
/*靜態修正表單中的action屬性值,完成把注冊的要求提交給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="登錄">            
<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、在這份設置裝備擺設文件中,對action標簽中的name屬性設置裝備擺設了一個通配符: "*",前面的method屬性值則為: {1}。

        2、意思就是當用戶在index.jsp頁面點擊了登錄按鈕,那末就會把表單:中的action="Login"要求傳給struts,由於在struts.xml中停止了通配符的設置裝備擺設,所以就把 "*"當做是"Login",也就是name="Login"。爾後面的method值為:{1}代表的是第一個"*",也就是metho="Login"。所以struts會去action.Action類中尋覓到Login辦法而且挪用。假如用戶點擊了注冊按鈕,那末也和點擊登錄按鈕是一樣流程了。詳細可以本身寫一個小例子感觸感染一下。

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

  固然,通配符的應用不只僅是只要這麼簡略的一個,還能夠是有: "*-*"、"Book_*" 等,這些通配符可以在struts.xml設置裝備擺設文件中action標簽的屬性中應用,如mthod、class屬性,也能夠在result標簽中應用,以下:

<!--界說一個通用的action標簽-->
<action name="*">
<!--應用表達式界說Result標簽-->
<result>/WEB-INF/jsp/{1}.jsp</result>
</action> 

    在下面的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中靜態辦法挪用應用通配符,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved