【问题标题】:code too large for try block in JSPJSP 中的 try 块代码太大
【发布时间】:2012-11-27 20:04:11
【问题描述】:

我有一个 JSP 页面,它显示一个包含几行的表格。 在编译时一切看起来都很好,在运行时我得到这个“代码太大而不能尝试块”错误。我看到我应该溢出 JSP 并包含几个。但是我的 JPS 不允许,因为所有内容都与带有几个 tr 和 td 的表一起使用。所以我cldnt分裂。还有其他方法吗?或者我怎样才能将 JSP 洒在一张桌子上?

【问题讨论】:

  • 另一种方法是将您的 java 代码与您的表示层分开,方法是将其保留在您的 JSP 之外。您正在使用什么框架:Spring? EJB?
  • @Jahroy..its Struts 框架
  • 我的 JSP 没有任何核心 Java 代码。它是 JSP 中的所有 JSTL。
  • 好的。我不太熟悉您使用的框架,但我编辑了标签以鼓励更多知识渊博的访问者停下来。
  • 您是如何生成该表的?显示您的 JSP。

标签: java jsp struts jstl


【解决方案1】:

前面已经说过,数据模型和视图分离是有好处的。

不过,您也可以在 JSP 中使用方法;输出也可以在方法中使用%>...<% 完成。

JSP 声明来自<%! ... %>

<%!

private void f(JspWriter out) throws Exception {
    out.println("hello");
}


private void tr(String a, String b) throws Exception {
   %><tr><td><%= a %></td><td><%= b %></td></tr>
   <%
}

%>
<%
    f(out);
%>
<table>
<%
    tr("good day", "bonan tagon");
    tr("good night", "bonan nokton");
%>
</table>

【讨论】:

  • 拥有这些标签有什么用?我应该在那里输入什么代码?
  • 声明,类似于函数,因此您可以将 jsp 拆分为更小的部分。可能是用于输出 TR 的可重复函数。
  • 但是jsp中的scriptlet不是转成java放在service()方法里面了吗?它不会给出相同的结果。我不知道。有人能知道吗?
  • 没有声明放在类大括号内。
猜你喜欢
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多