无法在JSP/servlets-Java中的请求中设置属性?
以下是我在JSP代码中遵循的步骤: 1) 登录页面并将其发布到servlet 2) 在servlet中,我设置了一些请求属性,并使用dispatcher转发请求 设置bean属性 3) bean设置属性并转发到不同的url 4) 在这个url中,我从请求中提取属性以显示在页面上。我从请求中得到一个无法在JSP/servlets-Java中的请求中设置属性?,java,jsp,servlets,request,requestdispatcher,Java,Jsp,Servlets,Request,Requestdispatcher,以下是我在JSP代码中遵循的步骤: 1) 登录页面并将其发布到servlet 2) 在servlet中,我设置了一些请求属性,并使用dispatcher转发请求 设置bean属性 3) bean设置属性并转发到不同的url 4) 在这个url中,我从请求中提取属性以显示在页面上。我从请求中得到一个null,表明我的属性没有在请求中设置。这就是下面的displayinfo.jsp显示的Welcome Null。为什么不设置属性 这是我的密码: 登录页面: <form id="login" m
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>
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>
我的bean
是正确的。我测试过了。上面我粘贴了相关的代码。代码不完整只需更改即可
<jsp:getProperty name="wu" property="userId" />
并以与现在相同的方式访问它
<jsp:getProperty name="wu" property="userId" />
根据以下符号
<jsp:setProperty name="wu" property="*" />
到
显然,也要更改
表单
的输入
参数名。我看不出该属性与wu
bean的userId
属性有什么关系。你能澄清一下吗?在setbean.jsp中,我使用wu
bean来设置用户ID。在displayInfo
.jsp中,我试图从bean中拉出..有意义吗?我知道这是以一种复杂的方式完成的。但如果您注意到,在servlet中,我从请求中获取这些参数,并在请求中设置新参数,以获得bean要处理的正确名称。这在理论上应该有效?@头脑风暴不要混淆请求参数和请求属性。setProperty
似乎可以获取请求参数。您的名称与bean的属性名称不同。我在请求时混淆了参数和属性。你纠正了我说SetProperty使用请求参数的说法。我想没有办法设置请求参数,可能也没用吧?@brainstorm当您提交
时,它的元素会作为表单参数提交,servlet容器会将表单参数转换为请求参数。只要适当地更改它们的名称,setProperty
元素将正确地检索它们,然后在bean上设置它们。如果在表单中添加另一个参数,并且不打算使用新属性更新bean,会发生什么情况?我正在setBean.jsp
中设置属性。设置之后,我将转发到displayinfo.jsp
。我知道这是非常混乱和复杂的。但仅用于学习目的。您没有使用适当的设置wu
的属性names@brainstorm如果您不想使用核心标记,那么就使用JSP容器,只需使用JSP EL,例如,${userId}
@Dave,不信任其内容直接使用风险很小。是的,您可以通过${param.paramName}
<c:out value="${userId}" />
<jsp:setProperty name="wu" property="userId" value="${userId}"/>
<jsp:setProperty name="wu" property="password" value="${password}/>
<jsp:getProperty name="wu" property="userId" />
<jsp:setProperty name="wu" property="*" />
String uid = request.getParameter("uid");
String pwd = request.getParameter("pwd");
String uid = request.getParameter("userId");
String pwd = request.getParameter("password");