導航:首頁 > 編程語言 > struts2jsp跳轉action

struts2jsp跳轉action

發布時間:2023-03-01 03:18:35

① struts2怎樣從jsp頁面傳值到action中

jsp頁面跟通常的html傳值一樣 通常有兩種方式

1.form表單傳值

2.url方式傳值

通常後台接受前端傳值 都是用的request.getParameter("username")

但是在struts框架下 可以用set方法讓action自動接收 也更方便

所以 action接收值也有兩種方式

1.request.getParameter("username")

2.set



下面記錄多種組合方式,大家可以根據相應的情況選擇使用:

方式一 jsp中form傳值username,password, action中set方法接收

[java]view plain

<%@taglibprefix="s"uri="/struts-tags"%>

[java]view plain

<formaction="getIp/login"method="post"name="form1">

用戶名:

<s:textfieldname="username"/>

<br/>

密碼

<s:passwordname="password"/>

<br/>

<s:submitvalue="提交"/>

</form>





login.jsp

[java]view plain

<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()

+path+"/";

%>

<%@taglibprefix="s"uri="/struts-tags"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>loginpage</title>

</head>

<body>

<formaction="getIp/login"method="post"name="form1">

用戶名:

<s:textfieldname="username"/>

<br/>

密碼:

<s:passwordname="password"/>

<br/>

<s:submitvalue="提交"/>

</form>

</body>

</html>


loginAction.java


[java]view plain

packageaction;

importcom.opensymphony.xwork2.ActionSupport;

{

/**

*登錄

*/

=-6797327769546503535L;

privateStringusername;

privateStringpassword;

publicStringgetUsername(){

returnusername;

}

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringexecute(){

System.out.println("username:"+username);

System.out.println("password:"+password);

returnSUCCESS;

}

}



spring文件
action.xml

[java]view plain

<?xmlversion="1.0"encoding="utf-8"?>

<struts>

<packagename="getIp"extends="json-default"namespace="/getIp">

<!--<actionname="testJson"class="testAction">

<resulttype="json"></result>

</action>

<actionname="testJsp"class="testAction">

<resultname="success">/index.jsp</result>

</action>-->

<actionname="login"class="login">

<resulttype="json"></result>

</action>

</package>

</struts>

② jsp頁面怎麼跳轉到action方法中

1、如果想在action中獲得值,就必須先從jsp跳轉到action,然後action返回的時候被struts攔截,匹配result時,就可以控制跳轉到另外一個jsp,這當中的過程看起來很長,但是對於計算機來說是非常短暫的,是經過action才跳轉到第二個jsp。
2、還有一種方式是用 ajax 將要傳遞給action的數據以url+ 參數 + 參數值 的方式(即get方式)傳遞給後台action,但是這個action不能匹配struts當中的result,否則會報錯,最好是定義void方法來獲得頁面數據,request取值,response響應

③ struts2在jsp頁面上怎麼訪問action

如果你要引用action執行後的頁面,就用s:action 加上executeResult="true"這個屬性就可以了 <s:action id="這可以不要,id是jsp直接引用action里用的" name="action名" executeResult="true"> <s:param name="" value=""/>這是action的參數 </s:action>

④ 基於struts2的JSP頁面執行action跳轉新的jsp頁面之後,新的jsp頁面如何自動顯示出執行action後的內容

不是太理解你的意思,
信息可以存在session中,在jsp頁面里讀出來
action:
public String list() {
try {
List<Voter> list = service.getAll();
ActionContext.getContext().getSession().put("voterList", list);
return "list";
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
list.jsp:
<c:forEach var="voter" items="${voterList }" varStatus="st">
<tr>
<td>${voter.userId }</td>
<td>${voter.userName }</td>
</tr>
</c:forEach>
struts.xml:
<action name="user_*" class="wangli.action.UserAction" method="{1}">
<result name="login">login.jsp</result>
<result name="loginSuccess" type="redirectAction">user_list</result>
<result name="list">/WEB-INF/list.jsp</result>
<result name="registerSuccess">registerSuccess.jsp</result>
</action>

⑤ 在Struts2中,怎麼由jsp跳轉到action中

哥們,你的理解有很大問題呀
不 jsp 跳到 action 取值
而是你應該訪問action 然後返回你的jsp才能有值。

幫你梳理一下,什麼是訪問吧,呵呵

首先,瀏覽器訪問一個地址,被你的servlet 獲取,至於是不是訪問jsp 還是訪問action這個一般看你配置文件怎麼配了,當然不會有人將action的標志寫為 「jsp」,一般寫.action 或者.do

那麼如果你的攔截器也沒有攔截jsp的話,(不明白攔截器可以忽略本段),會根據你的後綴名判斷你要訪問什麼。

其實不管你訪問什麼,都可以認為最後通過 response 返回了一個字元串,返迴文件不算。

那麼這個字元串的構成不外乎有幾種
1,全部靜態,一般是 html,即直接指向一個靜態頁面,當然也可以通過actiong 轉向一個html
2,全部動態,由java拼接一個字元串,返回,ajax請求一般是這種情況。當然,若全天是一個submit式提交,希望返回一個頁面,那麼你的字元串將被當作html代碼展示。
3,半動態,也就是jsp方式,jsp中的html部分是靜態不動的,其他jsp標簽,如你寫的s標簽(s標簽是strut的標簽,說白了是jsp標簽的一種),jsp標簽會根據他的定義執行對應的java代碼進行拼裝。然後將拼裝好的部分與原來的html部分結合,返回給瀏覽器。

無論是哪種,瀏覽器拿到的都是 靜態的,也就是瀏覽器並不知道你後台做了什麼,只是拿到一個已經拼裝好了的html,(這個html原來可能就不需要拼裝對應第一種,全部都是拼裝的對應第二種,一半是拼裝的對應第三種)

但是你直接訪問jsp的問題是,當前sesson中沒有你寫的pages.pageList,所以啥也沒有。

所以要在頁面上顯示列表有2種方案,這兩種方案都很常見。
1,訪問一個action,action先通過java取得值,將值付給某些變數,對你的來說就是pages.pageList,再將請求重定向到你的jsp,那麼jsp中s標簽就被拼裝成你要值返回了前台。
頁面上就有 表格了。
2,訪問一個jsp,而這個jsp中沒有你現在寫的s標簽,但是當jsp全部載入完成後,通過ajax向後台申請數據,再通過js(javascript)修改你前台的頁面,展示出你要的結果,

隨著這些年的發展,第二種方案越來越流行,其實怎麼用還是要看自己。

閱讀全文

與struts2jsp跳轉action相關的資料

熱點內容
雲天視機升級怎麼弄 瀏覽:283
win10自帶的驅動刪除了怎麼辦 瀏覽:143
whatsapp此時無法下載 瀏覽:209
java網路位元組序轉換 瀏覽:233
美版iphone4蜂窩 瀏覽:626
word文件打開就最大化 瀏覽:998
經緯度和浮點數轉換工具 瀏覽:402
群星最新版本 瀏覽:471
歐洲童裝網站有哪些 瀏覽:783
win10默認頭像下載 瀏覽:216
dnf2017代碼大全 瀏覽:219
編程項目經理證書怎麼考 瀏覽:570
律師咨詢什麼app 瀏覽:863
ps導入ai什麼格式文件 瀏覽:255
手機升級系統的利弊 瀏覽:411
如何判斷兩列是否相同的數據 瀏覽:25
安卓系統微信文件夾 瀏覽:19
xp打開word找不到文件 瀏覽:488
文件名占容量 瀏覽:882
環型槽如何編程 瀏覽:290

友情鏈接