【问题标题】:How to pass a value from a procedure (SQL Server) to Struts 2 using Entity如何使用实体将值从过程(SQL Server)传递到 Struts 2
【发布时间】:2015-04-19 11:35:36
【问题描述】:

这是我的程序:

create procedure [dbo].[reportlist]
@reportedrestaurant int
as
select reportedrestaurant,count(reportedrestaurant) as numberofreport from Report where reportedrestaurant = @reportedrestaurant  group by reportedrestaurant

GO

这是我的代码:

public List reportlist(int reportedrestaurant){
    StoredProcedureQuery squery = em.createStoredProcedureQuery("reportlist");
    squery.registerStoredProcedureParameter("reportedrestaurant", Integer.class, ParameterMode.IN);
    squery.setParameter("reportedrestaurant", reportedrestaurant);
    List<Object[]> list = (List<Object[]>)squery.getResultList();
    return list;    
}

这是我的行动:

public String execute() throws Exception {
    ReportedDAO dao = new ReportedDAO();
    list = dao.reportlist(restaurant);
    return "success";
}

当我执行时,我在列表中收到1 记录,但是当我尝试获取它时,它返回一个非整数值,如下所示:[Ljava.lang.Object;@7c0e76cd

JSP:

<td style="text-align: center"><s:property value="%{reportedrestaurant}"/></td> <td style="text-align: center"><s:property value="%{numberofreport}"/></td>

我的代码有什么问题吗?有什么解决办法吗?

【问题讨论】:

  • 在你试图获取它的地方显示代码。

标签: java sql-server jsp struts2 ognl


【解决方案1】:

解决此问题的解决方案是使用 OGNL 表达式在值堆栈中查找值。它是数据应该像操作一样驻留的地方。如果您使用list,那么您可以按索引获取值。假设 list 的 getter 可用

<td style="text-align: center"><s:property value="%{list[0][0]}"/></td> <td style="text-align: center"><s:property value="%{list[0][1]}"/></td>

或者你可以为reportedrestaurantnumberofreport创建一个getter

public String getReportedrestaurant(){return String.valueOf(list.get(0)[0]);} 

public int getNumberofreport(){return ((BigInteger)list.get(0)[1]).intValue();}

然后在 JSP 上使用它

<td style="text-align: center"><s:property value="%{reportedrestaurant}"/></td> <td style="text-align: center"><s:property value="%{numberofreport}"/></td>

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2016-02-19
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多