1

我正在用struts2做项目。我有广告列表。有一个广告表,其中包含添加的详细信息。我想显示添加列表。

所以我想知道哪个是更好的解决方案来实现这个?

  1. 在动作类中,我将获取对象并将它们存储到列表对象中并将此列表对象设置为请求 request.setAttribute(list);

    并在 jsp 页面上检索和显示

  2. 使用 scriptlet <% %> 获取对象并在 jsp 页面上显示它

请告诉哪些是执行此操作的最佳实践?

4

3 回答 3

3

首先更好,因为:

  • jsp文件上的java代码是邪恶的(html+javascript+jstl标签mb+java代码=难以维护)
  • jsp 只是视图(MVC 模式),视图上的逻辑是个坏主意
于 2012-08-06T06:05:21.967 回答
3

我建议不要执行上述任何操作,因为 S2 提供了一种更优雅、更灵活的方法来设置和获取请求和响应中的对象。

您可以遵循这种方法。

在您的操作类中,创建一个包含其 setter 和 getter 的列表,并用您想要填充的任何数据填充对象

public class MYActionClass extends ActionSupport{

  private List<Data Type as per your need> myList;
  // getters

  public String execute() throws Exception{

    // you logic
    myList=fill list with the data
  }
}

上面的代码将让 S2 将数据放入myList其中valueStack,您可以使用 OGNL 在您的 JSP 中获取数据。确保有 getter 和 setter,以便 S2 可以获取数据并将其放入列表中。

在你的jsp中,你可以使用OGNL访问列表,我不能建议你如何访问列表数据,因为你没有提到你想如何访问JSP中的数据以及以什么方式但是使用OGNL是很直接的像迭代器一样前进

我建议看看OGNL基础c。

不要使用脚本让,因为有更好和更灵活的方式来访问数据

于 2012-08-06T06:10:48.737 回答
3

第一。您应该避免在 JSP 中使用 scriptlet,因为这是一种非常丑陋的做法并且违反了 MVC 模式。相反,您应该使用 JSP 标记,特别是JSTL标记。此外,如果您正在使用 Struts,您将拥有更多 Struts 提供给您的标签

请记住,如果您无法使用标签执行某些操作,则意味着您不应该这样做。

于 2012-08-06T06:11:58.703 回答