【问题标题】:How to access model attribute fields in JSP scriptlet?如何访问 JSP scriptlet 中的模型属性字段?
【发布时间】:2015-08-28 07:16:26
【问题描述】:

在我的控制器中,我有这样的代码:

List<FeesReceiptIntegrationModel> FRIList = feesReceiptIntegrationService.listInstituteWiseCollectionSummary(model, request);

model.addAttribute("FRIList", FRIList);

我想在 JSP 页面的 Scriptlet 中访问这个 FRIList 及其字段。 我尝试过这样的事情:

String fcash = request.getParameter(FRIList.cashamount);

但它不起作用。

List myMap = (ArrayList) request.getAttribute("FRIList.cashamount");

我不想通过 JSTL 标记访问它,但我只想在 scriptlet 中访问它。

谁能告诉我这是如何实现的?

【问题讨论】:

  • 你把模型列表“FRIList”,所以你可以在jsp中得到它:List myMap = (ArrayList) request.getAttribute("FRIList");,然后用这个列表做你想做的事。
  • 我是这样访问的 List myMap = (ArrayList) request.getAttribute("FRIList.cashamount"); System.out.println("oooooo oo"+ myMap);但直到现在我无法访问..... myMap 显示空值..
  • @ManojSharma 我想您使用的是spring 框架。您是否在前端使用任何视图模板?
  • 前端我使用的是jsp,jstl..

标签: java spring jsp


【解决方案1】:

使用 scriplets 是个坏主意。尽量避免在 JSP 页面中使用 java 代码。

您可以将 JSTL c:forEach 用于您的目的

简单示例

<c:forEach items="${FRIList}" begin="0" end="1" var="test">
${test.cashamount}
</c:forEach>

【讨论】:

【解决方案2】:

您无法按原样打印列表中的值,您需要在从model 获取列表后对其进行迭代。如前所述,

我不想通过 JSTL 标记访问它,但我只想在 scriptlet 中访问它

<%  List<FeesReceiptIntegrationModel > myMap = (ArrayList<FeesReceiptIntegrationModel >) request.getAttribute("FRIList");
    for(FeesReceiptIntegrationModel obj : myMap  ){
    obj.getcashamount(); // your getter method here
    }
%>

但不建议使用scriptlets,请查看How to avoid Java code in JSP files?

【讨论】:

  • 它给出编译时错误 Object cannot be convert to FeesReceiptIntegrationModel..
  • 查看我的更新,需要将对象强制转换为 bean 类
猜你喜欢
  • 2012-02-06
  • 2012-06-09
  • 2011-06-06
  • 2014-06-10
  • 1970-01-01
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多