我真的有一个问题,我不知道如何处理它。 我在Eclipse IDE中使用JSP和Servlet。 首先,用户使用他在表单中选择和写入的值填充html表。 之后他会发现他的参数显示在html表中。 现在的问题是: 该表在每一行中都包含一个编辑按钮;用户应该使表单自动填充行“先前选择”的值。 所以这是如何使用html表中的变量重新加载表单。 注意:我用servlet构造表。 请帮忙。
答案 0 :(得分:0)
相应地预填充HTML输入元素的value
属性。在servlet中,将带有数据的bean放在请求范围内,将请求转发给JSP,然后在JSP中执行,例如:
<input type="text" name="foo" value="${bean.foo}">
请注意,当这是用户控制的数据时,您可能会冒XSS attacks的风险。然后,您应该使用JSTL的fn:escapeXml
:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input type="text" name="foo" value="${fn:escapeXml(bean.foo)}">
答案 1 :(得分:0)
例如,您必须在表单中填写FirstName和LastName字段,并填写表格。
当您在servlet中提交表单时,您将构造一个对象POJO类,您可以在其中存储名字和姓氏。
您的POJO课程可能是这样的。
public class MyClass{
private java.lang.String firstName = null;
private java.lang.String lastName = null;
public MyClass(java.lang.String firstName, java.lang.String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public void getFirstName(){
return firstName;
}
public void getLastName(){
return lastName;
}
}
现在,在您的servlet中,您将像这样创建此POJO类的对象并将其放在哈希表中。之后将哈希表放入会话中。
MyClass myClassObject = new MyClass(request.getParameter("firstName"), request.getParameter("lastName"));
java.util.Hashtable htMyClassObjects = (java.util.Hashtable)request.getSession(false).getAttribute("htMyClassObjects");
if (htMyClassObjects == null){ // For the first time, it will be null
htMyClassObjects = new java.util.Hashtable();
}
htMyClassObjects.put(java.lang.String.valueOf(htMyClassObjects.size()), myClassObject);
在表格中,在按钮单击中,传递与该行关联的哈希表键。就像这样。
<input type = "button" onclick="location.href='myjsp.jsp?rowNumber=<%=hash table key%>'" />
现在,当您处理该按钮请求时,请使用此编号并从哈希表中获取对象并填写字段。
我的回答有点潦草。但试着实现这一点。