【发布时间】:2014-07-10 00:07:04
【问题描述】:
以下是我在 jsps 代码中遵循的步骤: 1) 登录页面并将其发布到 servlet。
2) 在 servlet 中,我正在设置一些请求属性并使用调度程序转发请求 到另一个设置 bean 属性。
3) bean设置属性并转发到不同的url。
4) 在这个 url 中,我从请求中提取属性以显示在页面上。我从请求中得到一个null,表明我的属性未按请求设置。也就是下面的displayinfo.jsp 显示Welcome Null。为什么没有设置属性?
这是我的代码:
Login page:
<form id="login" method="post" action="setBeansAllPropertiesLoginUser.do">
<span>UserName:</span><input name="uid" type="text" style="width:250px;" />
<span>Password:</span><input name="pwd" type="password" style="width:250px;"/>
</form>
servlet:
@WebServlet("/setBeansAllPropertiesLoginUser.do")
public class SetBeansAllPropertiesLoginuser extends HttpServlet {
public SetBeansAllPropertiesLoginuser() {
super();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uid = request.getParameter("uid");
String pwd = request.getParameter("pwd");
request.setAttribute("userId", uid);
request.setAttribute("password", pwd);
//verify login details
int authLevel = 1;
String base = "setBean.jsp";
/*
String params = String.format("?userId=%s&password=%s&authLevel=%d"
, uid, pwd, authLevel);
*/
String dest = String.format("%s%s"
,base
,params);
//RequestDispatcher rd = request.getRequestDispatcher(dest);
RequestDispatcher rd = request.getRequestDispatcher(base);
rd.forward(request, response);
}
}
setBean.jsp
<table style="width:100%;">
<tr>
<td style="width:25%;height:80%;" valign="top">
<jsp:include page="navbar.jsp" />
</td>
<td style="width:75%;height:80%;">
<jsp:useBean id="wu" class="com.worldmanager.models.WebUser"
scope="request">
<jsp:setProperty name="wu" property="*" />
</jsp:useBean>
<jsp:forward page="displayinfo.jsp" />
</td>
</tr>
</table>
displayinfo.jsp:
<table style="width:100%;">
<tr>
<td style="width:25%;height:80%;" valign="top">
<jsp:include page="navbar.jsp" />
</td>
<td style="width:75%;height:80%;">
<jsp:useBean id="wu" class="com.worldmanager.models.WebUser" scope="request"/>
<h1>Welcome
<jsp:getProperty name="wu" property="userId" />
</h1>
</td>
</tr>
</table>
我的bean 是正确的。我测试了它。上面我粘贴了相关的代码。代码不完整
【问题讨论】:
-
我看不出该属性与
wubean 的userId属性有何关系。你能澄清一下吗? -
在 setbean.jsp 中,我使用
wubean 来设置 userId。在displayInfo.jsp 中,我尝试从 bean 中抽出..有意义吗?
标签: java jsp servlets request requestdispatcher