[英]Redirect is not working in struts2
這是我的index.jsp文件:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>HOME</title>
</head>
<body>
<s:action name="getUrl"></s:action>
</body>
</html>
這是我的struts.xml:
<struts>
<action name="getUrl" class="UrlAction">
<result name="redirect" type="redirect">${url}</result>
</action>
</struts>
這是我的動作類:
public class UrlAction extends ActionSupport {
private String url;
public void setUrl(String url) {
this.url = url;
}
public String getUrl(){
return url;
}
public String execute() throws Exception {
System.out.println("Entering execute() of Action");
url = "https://www.google.com/";
return "redirect";
}
}
因此,當我運行index.jsp時,它應該將我重定向到https://www.google.com ,但我沒有得到它。 正在打印“輸入執行的執行()”。 這意味着它將進入Action類。 如果我做錯了,請糾正我。
你應該改變
<result name="redirect" type="redirect">${url}</result>
至
<result name="redirect" type="redirect">
<param name="location">${url}</param>
</result>
和
<s:action name="getUrl"></s:action>
至
<s:action name="getUrl" executeResults="true"></s:action>
使其有效;
但是,即使這樣做,你也不會重定向你的頁面,因為這不是 <s:action>
標簽所做的, 根據文檔 :
此標記使開發人員可以通過指定操作名稱和可選命名空間直接從JSP頁面調用操作。 標記的正文內容用於呈現Action的結果。 除非指定了executeResult參數,否則將忽略在struts.xml中為此操作定義的任何結果處理器。
您可以在此處找到一個使用示例: http : //www.mkyong.com/struts2/struts-2-action-tag-example/
我想你可能會在你的標簽內看到重定向的谷歌頁面(修改后)
編輯
你應該准確地描述你想要達到的目標; 你開始問一個關於<s:action>
標簽的問題,但我很確定這不是你所需要的(雖然我還沒有完全理解你想要的東西,除了某個地方某個地方的“重定向” )
如果您想在打開頁面時立即重定向,只需使用<s:url>
標簽為您的操作安裝網址,並將其放入更改位置的javascript腳本中:
<script>
location.href = "<s:url action="getUrl.action" />";
</script>
(但這很奇怪,因為如果你需要在來自另一個動作時重定向,沒有理由從JSP頁面傳遞,只需使用redirectAction
結果而不是redirect
結果)
如果您想在按下按鈕時重定向,請使用<s:submit>
標記:
<s:submit action="getUrl.action" value="press here to redirect" />
首先識別和不可知描述你的目標 ,然后獲得有關幫助你做到這一點的技術信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.