避免在索引页面中循环

时间:2017-05-29 19:12:35

标签: struts2

我有这个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的操作。在这种情况下,动作循环。

1 个答案:

答案 0 :(得分:2)

Struts2(以及所有其他MVC框架)的主要目的是将URL路由到准备数据的Action(Controller)(在您的情况下为comboMeals)并确定结果(在您的情况下始终为{ {1}})映射到模板(视图),在您的情况下SUCCESS

index.jsp中你应该有类似

的内容
struts.xml