gpt4 book ai didi

java - 无法在 JSP/servlet 中的请求中设置属性 - Java?

转载 作者:行者123 更新时间:2023-11-30 03:50:08 25 4
gpt4 key购买 nike

以下是我在 jsps 代码中遵循的步骤:1) 登录页面并将其发布到 servlet。

2)在servlet中,我设置了一些请求属性并使用调度程序转发请求到另一个设置 bean 属性。

3) bean 设置属性并转发到不同的 url。

4) 在此网址中,我从请求中提取属性以显示在页面上。我从请求中得到一个 null,表明我的属性未根据请求设置。即下面的 displayinfo.jsp 显示 Welcome Null。为什么没有设置该属性?

这是我的代码:登录页面:

<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是正确的。我测试过。上面我粘贴了相关的代码。这不是完整的代码

最佳答案

改变一下

<jsp:getProperty name="wu" property="userId" />

<c:out value="${userId}" />

直接从请求属性读取

通过使用<jsp:getProperty>您正在请求wu.getUserId()并且您还没有设置wu的属性在可用范围内

或者

设置wu明确的属性

  <jsp:setProperty name="wu" property="userId"  value="${userId}"/>
<jsp:setProperty name="wu" property="password" value="${password}/>

并以与现在相同的方式访问它

  <jsp:getProperty name="wu" property="userId" />

关于java - 无法在 JSP/servlet 中的请求中设置属性 - Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com