【发布时间】:2011-10-08 06:47:52
【问题描述】:
我有 2 个 jsp 页面,一个称为 MyPage.jsp,另一个称为 View.jsp。 View.jsp 具有树结构。 MyPage.jsp 有一些称为数字和设计的文本字段,需要通过 servlet 通过 bean 填充。单击 View.jsp 中的任何树节点时,MyPage.jsp 应该使用文本字段值集呈现。现在发生的事情是因为 MyPage.jsp 被调用了两次,即一次在 View.jsp(在 ajax 函数中),第二次在 servlet 的请求调度程序中,因此在 servlet 中设置的 bean 值丢失了。请提出一种更好的方法,以便在整个过程中保留值,并且在单击树节点 MyPagejsp 时会使用设置的字段值呈现。
responseBean.setNumber("220");
responseBean.setDesign("xyz");
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
request.setAttribute("responseBean", responseBean);
RequestDispatcher requestDispatcher = getServletContext().getRequestDispatcher("/MyPage.jsp");
requestDispatcher.include(request, response);
response.getWriter().write("Success");
使用 bean 值集调用 MyPage.jsp 的 jsp 页面具有以下代码
View.jsp
$.ajax({
url : AJAX_SERVLET,
type: "GET",
data: "Number="+node.data.title,
success : function(output) {
$("[id=content]").attr("src", '/Test-portlet/MyPage.jsp');
}
});
}
MyPage.jsp
<jsp:useBean id="responseBean" class="com.web.bean.ResponseBean" scope="request">
<jsp:setProperty name="responseBean" property="*"/>
</jsp:useBean>
<body>
<%System.out.println("Values"+responseBean.getNumber()); %>
</body>
在上面的 MyPage.jsp 代码中,System.out.println 打印了两次值;曾经作为 价值观 202 第二个作为值空。因为它用 null 替换原始值只是因为 MyPage.jsp 被调用了两次,所以第二次值丢失了。请帮忙
【问题讨论】:
-
功能需求远未明确。请编辑和改进/详细说明。
-
@BalusC 请查看我编辑的问题。我希望我现在清楚了。
-
您的观点已被理解,但您的
System.out.println()示例很糟糕,因为它永远不会找到并打印由servlet 或jsp:useBean设置为请求属性的bean。它只会导致NullPointerException。
标签: java ajax jsp servlets javabeans