① 如何讓jsp頁面載入時就跳轉到action里去執行查詢並顯示到頁面上,而不是點擊按鈕去查詢
web.xml中配置
<welcome-file-list>
<welcome-file>redirect.jsp</welcome-file>
</welcome-file-list>
redirect.jsp中如下配置
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"
pageEncoding="UTF-8"isELIgnored="false"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"
+request.getServerName()+":"+request.getServerPort()
+path+"/";
response.sendRedirect(basePath+action);
%>
action為你要跳專轉的屬action
② 如何在JSP頁面中直接調用Action
1,用ajax
$.ajax({
cache: false,
url: "xxx/xxx.do",
type: "post",
dataType: "json",
async: false,
data: $("#sysUserAddForm").serialize(),
timeout: 10000,
error: function(XMLHttpRequest) { // 請求失敗時調用函數。
},
success: function(data) { // 請求成功後回調專函數。
}
2,屬window.location.href="xxx/xxx.do"
③ 基於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>
④ 怎樣一進jsp就執行一個action
index.jsp里
<s:action name="action1" executeResult="true" namespace="/" />
<s:action name="action2" executeResult="true" namespace="/" />
struts.xml里:
<package name="default" namespace="/" extends="struts-default">
<action name="action1" class="cn.java.Action1">
<result>/action1.jsp</result>
</action>
<action name="action2" class="cn.java.Action2">
<result>/action2.jsp</result>
</action>
</package>
在action1.jsp里<s:property value="#attr.name" />就得到action1里的屬性name的值了(name需要有get方法),如果action1里是ServletActionContext.getRequest().setAttribute("name", "ACTION1"); action1.jsp里直接用request.getAttribute就可以
這樣就可以把各個模塊單獨用一個jsp文件保存,各個主頁面只需要定義HTML的布局,就可以把各個模塊包含近來,各個主頁面需要那個模塊就寫個<s:action name="xxx" executeResult="true" namespace="/" />,模塊重復使用。
⑤ 跳轉到一個jsp頁面後怎麼在自動 跳轉到action
1、如果你想在action中獲得值,就必須先從jsp跳轉到action,然後action返回的時候被struts攔截,匹配result時,就可以控制跳轉到另外一個jsp,這當中的過程看起來很長,但是對於計算機來說是非常短暫的,你不會發現是經過action才跳轉到第二個jsp。
2、還有一種方式是用 ajax 將你要傳遞給action的數據以url+ 參數 + 參數值 的方式(即get方式)傳遞給後台action,但是這個action不能匹配struts當中的result,否則會報錯,最好是定義void方法來獲得頁面數據,request取值,response響應。