0

我有一个 jsp *to_include.jsp*,我想使用传递字符串参数的 < s:include > 标记将其包含在另一个中。这是包含jsp的代码:

<div>
    <s:include value="to_include.jsp">
        <s:param name="list">list_of_objects</s:param>
    </s:include>
</div>

列表参数是在包含的 jsp 中迭代的数组对象的名称。我可以使用以下方法轻松访问包含 jsp 中的列表名称:

<%= request.getParameter("list") %>

但是在 < s:iterator > 属性中,您不能像刚才显示的那样在标签内包含表达式。我的问题是,如何访问迭代器标签内的列表参数?

<s:iterator value="?">
    ...
</s:iterator>
4

2 回答 2

1

相反,使用 s:set 标记来获取操作属性并将其设置为值堆栈上的值,然后包含的页面可以访问该值。

于 2012-07-06T23:00:57.017 回答
0

如果您想要的是让正在迭代的列表由请求参数确定,那么为什么不在操作中而不是在 jsp 中进行选择呢?

例如:

public class ListAction {

    private List<?> list;
    private ListService listService;

    public String execute() {
        return "success";
    }

    public void setListName(String listName) {
        list = listService.getList(listName);
    }

    public void setListService(ListService listService) {
        this.listService = listService;
    }

    public List<?> getList() {
        return list;
    }

}
于 2012-07-07T16:11:04.233 回答