我有這樣的index.jsp:避免在索引頁循環
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<h2>Simple Iterator</h2>
<ol>
<s:iterator value="comboMeals">
<li><s:property /></li>
</s:iterator>
</ol>
<h2>Iterator with IteratorStatus</h2>
<table>
<s:iterator value="comboMeals" status="comboMealsStatus">
<tr>
<s:if test="#comboMealsStatus.even == true">
<td style="background: #CCCCCC"><s:property/></td>
</s:if>
<s:elseif test="#comboMealsStatus.first == true">
<td><s:property/> (This is first value) </td>
</s:elseif>
<s:else>
<td><s:property/></td>
</s:else>
</tr>
</s:iterator>
</table>
</body>
</html>
這是我的Java類:
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
public class IteratorKFCAction extends ActionSupport{
private List<String> comboMeals;
public List<String> getComboMeals() {
return comboMeals;
}
public void setComboMeals(List<String> comboMeals) {
this.comboMeals = comboMeals;
}
public String execute() {
comboMeals = new ArrayList<String>();
comboMeals.add("Snack Plate");
comboMeals.add("Dinner Plate");
comboMeals.add("Colonel Chicken Rice Combo");
comboMeals.add("Colonel Burger");
comboMeals.add("O.R. Fillet Burger");
comboMeals.add("Zinger Burger");
return SUCCESS;
}
}
我的想法是直接調用,填補索引頁面的動作,所以我把這一行內的index.jsp的頭標記
<META HTTP-EQUIV="Refresh" CONTENT="0;URL='start.do'">
但與此修復程序,我得到該頁面輸入一個「刷新循環」。有什麼辦法可以直接從代碼中調用動作,這樣我就不必通過瀏覽器中的URL手動設置它。
我也試過的第二溶液加入到的index.jsp這個代碼體:
<s:action name="iteratorKFCAction" executeResult="true" />
其中iteratorKFCAction是在struts.xml中該召回IteratorKFCAction指定的操作。在這種情況下,動作循環。
重定向從index.jsp的路程。 index.jsp - > action - > some.jsp。 –
不,我只是想直接在index.jsp中顯示動作。可能嗎? – NxA
即使有可能,這並不意味着這是一個好主意。 標記是舊標記,你永遠不應該在新的開發中使用,元刷新技巧是過去的另一個不好的做法......你不能簡單地使用一個動作作爲歡迎頁面,或一個jsp重定向到一個動作? –