0

strut2のURLを非表示にしたい....ip:port / contextRoot/HideUrl.jspにアクセスしています。このJspにはボタンがあり、このstep1をクリックすると、アクションクラスの関数が呼び出され、URLがip:port / contextRoot / step1Struts2 ....に変更されます。元のURLip:port / contextRoot/HideUrl.jspのままにできますか。 ..... URLに「step1Struts2」を表示したくない.....これをどのように達成できますか?

HideUrl.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    <script type="text/javascript">
       function callStep1()
       {
           document.struts2Form.action="step1Struts2";
           document.struts2Form.submit();
       }



    </script>
</head>
<body>
      <s:form name="struts2Form">
        <input type="button" value="CallStep1" onclick="callStep1()"></input>

    </s:form>

</body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

 <struts>

<constant name="struts.devMode" value="true" />

<package name="struts2" extends="struts-default" namespace="/">
    <action name="*Struts2" class="example.HideUrl" method="{1}">
        <result name="input">HideUrl.jsp</result>
    </action>

</package>


<constant name="struts.action.excludePattern" value="/*.servlet"/>

   </struts>

HideUrl.java

package example;

import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionSupport;
 import java.util.Map;


 public class HideUrl extends ActionSupport {

 public String step1() throws Exception
{
    Map session = (Map)ActionContext.getContext().getSession();
    System.out.print("[HideUrl] step1 ");
    session.put("step1", "step1");
    return "input";
}


}
4

2 に答える 2

1

Ajax リクエストを使用して、レンダリングされたアクションの結果で DOM を更新できます。

ただし、通常、MVC アプリで JSP ページに直接アクセスすることは望ましくありません。

別のオプションは、「実際の」アクションに単純に転送するアクションにリクエストを作成し、基本的に MVC システム内に MVC システムを作成することです。

URLを非表示にする理由がわかりません。

于 2012-07-27T14:08:42.397 に答える
0

醜い URL を隠すために URL の書き換えを求めているように思えます。

これはいくつかの方法で実現できます

  1. 初心者向けのApache 構成 URL 書き換えによる

  2. Tomcat の URL 書き換え。これはあまり試したことがありませんが、 UrlRewriteFilter

または、残りのタイプの URL 構成を介して:

  1. STRUTS2 REST サポート (実際には書き換えていません) REST プラグインを介して

私は通常、REST プラグインを使用します。使用するアクション メソッド名を認識しておく必要があります。それを step1Struts2 にしたくない場合は、メソッドに step1Struts2 という名前を付けないでください。

于 2012-07-27T20:49:19.600 に答える