Java 将值从Servlet传递到JSP
我想从列表中选择一个用户,并在输入字段中显示值(以便管理员可以更改它们) JSP具有从用户列表中选择用户的表单:Java 将值从Servlet传递到JSP,java,forms,jakarta-ee,servlets,Java,Forms,Jakarta Ee,Servlets,我想从列表中选择一个用户,并在输入字段中显示值(以便管理员可以更改它们) JSP具有从用户列表中选择用户的表单: <form action="UserSelectionController" method="POST"> <select name="selectedUser" onchange="this.form.submit()"> <% Object
<form action="UserSelectionController" method="POST">
<select name="selectedUser" onchange="this.form.submit()">
<%
Object[] userList_ref = UserListService.getUserList();
for (int i = 0; i < userList_ref.length; i++) {%>
<option size="5" value="<%=userList_ref[i]%>"> <%=userList_ref[i]%></option> <% }%>
</select>
</form>
它还使用getter方法将值带回JSP:
public String getFirstname() {
return firstname;
}
system out println测试在servlet中显示正确的值。重定向到数据来自的同一个JSP。回到JSP中,我想在输入字段中显示值:
<jsp:useBean id="userSelection" class="servlets.UserSelectionController" />
<input type="text" name="firstname" value="<% userSelection.getFirstname();%>" />
不幸的是,这里的值是空的。我能做什么。任何线索都很好。
向您致意,Daniel,您正在使用servlet作为dto。这不好 创建另一个pojo,它将是一个。它将只包含字符串成员变量和相应的getter/setter。使用查询结果填充其成员,并将dto放入会话:
request.setAttribute(“userSelectionDTO”,userSelectionDTO)代码>
然后更改jsp,使其引用dto:
<jsp:useBean id="userSelection" class="servlets.UserSelectionDTO" />
<input type="text" name="firstname" value="<% userSelection.getFirstname();%>"
按照Nimchinpsky所写的操作,或者只将所选用户保持在http会话中。您能告诉我在哪里吗?在控制器(servlet)中还是在jsp上?感谢行请求的内容。setAttribute(“userSelectionDTO”)、userSelectionDTO);确实如此吗?没有会话集,它无法正常工作。您可能没有设置请求属性,或者无法初始化userSelection ObjectScriptlet的firstname成员变量,因为它与taglibs/EL不共享同一作用域。使用EL。您也不需要jsp:useBean。我会首先将鼠标放在问题下方的servlet
标记上方,直到弹出一个黑框。然后,单击其中的信息链接。
<jsp:useBean id="userSelection" class="servlets.UserSelectionDTO" />
<input type="text" name="firstname" value="<% userSelection.getFirstname();%>"