我有一个允许用户进行搜索的应用程序。
根据输入的搜索条件,对 DAO 函数进行服务调用(模式 jsp 事件 -> 拦截器 -> 处理器 -> 服务 -> DAO -> 数据库)并返回结果列表,该列表显示在 myView.jsp
下面的代码用于读取 JSP 中的 TO 数据:
<jsp:usebean id="myTO" type="com.myPackage.MyTO" scope="session"/>
在身体里有类似的东西
<%= myTo.getSomething() =%>
列表中的每个项目都可以单击以获取详细信息。因此,在单击列表中的第 2 项时,将使用第 2 项的 id 进行另一个调用,以获取有关第 2 项的更多详细信息。
根据项目的类型,在不同的 TO 中获取详细信息。例如 Type1TO、Type2TO。
因此,在这样一个 TO 中返回了有关项目的详细数据。
问题是:我在同一个 JSP 中显示详细信息。所以第二个请求的 returnURL 被转发到 myView.JSP
所以我放了一条线
<jsp:usebean id="type1TO" type="com.myPackage.Type1TO" scope="session"/>
但是,当上述 Type1TO 尚不存在时,这在第一次调用列表搜索期间会出错。错误类似于“无法在范围会话中找到 type1TO”
我怎么能解决这个问题???
有没有办法将 jsp:usebean 标记放在 if 条件中,放在要在正文中使用的地方?或任何其他解决方案?
我是 JSP 新手并处理旧版 JSP。所以非常高级的 JSP(复杂的 EL)可能不可行。