这在性能request.setAttribute或jsp scriptlet代码中更好

时间:2012-08-06 05:50:40

标签: java jsp struts2

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

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

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

    并在jsp页面上检索&展示

  2. 获取对象&使用scriptlet< %%>

  3. 在jsp页面上显示它

    请说明执行此操作的最佳做​​法是什么?

3 个答案:

答案 0 :(得分:3)

首先更好,因为:

  • jsp文件上的java代码是邪恶的(html + javascript + jstl标签mb + java代码=难以维护)
  • jsp只是视图(MVC模式),视图上的逻辑是个坏主意

答案 1 :(得分: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以什么方式访问数据像iterator

那样非常直截了当

我建议看看OGNL基础。

不要使用scrip let,因为有更多好的和灵活的方式来访问数据

答案 2 :(得分:3)

第一个。你应该避免在JSP中使用scriptlet,因为这是一个非常难看的做法并且违反了MVC模式。相反,您应该使用JSP标记,特别是JSTL标记。另外,如果您正在使用Struts,那么Struts为您提供了more tags

请注意,如果您无法使用标签,则表示您不应该这样做。