0

我有一个从数据库查询中获得的产品列表。

在每个产品中都有一个日历类型Date_inDate_out变量。

我想要做的是将这些产品传递给一个 jsp 视图,这样我就可以用它们的所有信息构建一个表。为此,我需要将日历日期转换为更合适的格式(如字符串),并且我有一个实用程序。

我的问题是:对于列表中的每个产品,如何将每个转换后的 date_in/date_out 传递给 request.setAttribute?

这就是我所拥有的。

ProductAction

List<Product> products = service.viewActiveProducts();
    for(Product product: products) {
        String date_inToString = DateConversionUtility.calendarDateToString(product.getDate_in());
        String date_outToString = DateConversionUtility.calendarDateToString(product.getDate_out());
    }

    request.setAttribute("products", products);

在jsp中:

<table>
  <tr class="index">
    <td>Id</td>
    <td>Date IN</td>
    <td>Date OUT</td>
  </tr>
<c:forEach items="${requestScope.products}" var="product">
  <tr>
    <td>${product.oid}</td>
    <td>${product.date_in}</td>
    <td>${product.date_out}</td>
  </tr>
</c:forEach>
</table>

(现在 product.date_in 和 product.date_out 是日历格式。我希望它们是字符串格式)。

4

3 回答 3

1

您可以创建自定义 JSTL 函数并直接在 JSP EL 标记中使用它。

<td>${product.oid}</td>
<td>${nspace:formatDate(product.date_in)}</td>
<td>${nspace:formatDate(product.date_out)}</td>

nspace分配给您的库和方法的 xml 命名空间在哪里formatDate。几个链接:

http://www.noppanit.com/how-to-create-a-custom-function-for-jstl/ http://anshulsood2006.blogspot.com.es/2012/03/creating-custom-functions-in- jsp-using.html

于 2013-06-12T10:50:59.977 回答
1

您可以通过 request.setAttribute(String,Object); 将整个列表传递给jsp;

List<Product> products = service.viewActiveProducts();
request.setAttribute("products", products);

您的 Product 类应该实现 Serializable 接口

要以字符串格式获取属性 date_in 和 date_out,请将它们转换为字符串,并在 Product 类中再添加两个属性,名称为 dateInString 和 dateOutString,并将它们的值设置为

for(Product product: products) {
product.setDateInString(DateConversionUtility.calendarDateToString(product.getDate_in()));
product.setDateOutString(DateConversionUtility.calendarDateToString(product.getDate_out()));
}

在jsp中,可以使用JSTL获取Products对象迭代列表的属性或字段

<c:forEach items="${products}" var="product"> 
  <tr>
    <td>${product.oid}</td>
    <td>${product.dateInString}</td>
    <td>${product.dateOutString }</td>
  </tr>
</c:forEach>
于 2013-06-12T11:22:58.933 回答
0

在 Product bean 中创建一个getDate_inString()getDate_outString方法来打印你想要的。然后,在jsp中你可以使用${product.date_inString}

于 2013-06-12T10:50:59.530 回答