我觉得我可能非常接近解决方案,但我无法掌握它。 程序的基本流程:首先填写表格并提交。操作类将对象存储在会话中。第二页使用迭代器显示所有名称并将它们超链接,这样当您单击一个名称时,它会转到一个页面,您可以在其中编辑信息(因此第三页是一个预先填充了所有信息的表单。用户点击的对象)。数据是使用get发送的,但我无法提取传递的值以将其设置为textfield的值。
以下是一些澄清的代码: 第一页(添加初始信息)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Add a Contact </h1>
<s:form action="ContactAction" namespace="/example" method="post" >
<s:textfield name="firstName" label="First Name" size="20" />
<s:textfield name="lastName" label="Last Name" size="20" />
<s:submit value="Submit"/>
</s:form>
</body>
第二页(联系信息显示和超链接)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<s:url action="index.action" var="urlTag" />
<s:a href="%{urlTag}">Add Another Contact</s:a>
<table border="1">
<s:iterator value="#session.contacts" var="contact">
<tr>
<s:url value="http://localhost:8080/Project/example/EditContact.jsp" var="urlTag" includeParams="get" >
<s:param name="firstName"> <s:property value="firstName"/> </s:param>
<s:textfield label="First Name" name="firstName" key="firstName" required="true" size="25" />
</s:url>
<td>
<s:property value="lastName"/>
<s:a href="%{urlTag}"> <s:property value="lastName"/> </s:a>
</td>
</tr>
</s:iterator>
</table>
正如您所见,在上面(第二页),firstName在文本字段中成功显示。 当你点击姓氏时,它会通过get请求发送信息(它成功完成了,因为我可以在url中看到?firstName = bob)
第三页(表格应预填充数据)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Edit a Contact </h1>
<s:form action="ContactAction" namespace="/example" method="post" >
<s:param name="firstName"> <s:property value="firstName"/> </s:param>
<s:textfield label="First Name" name="firstName" key="firstName" value="%{contact.firstName}" required="true" size="25" />
<s:property value="lastName" />
<s:textfield name="lastName" label="Last Name" size="20" />
<s:submit value="Submit"/>
</s:form>
</body>
第3页的代码不会使用firstName
值填充firstName
文本字段(即使已成功通过get获取)
struts是否具有PHP $_GET['firstName']
的等价物?
如何通过传递的get值填充文本字段?
我拉着我的头发试图解决这个问题!任何指导都将不胜感激。
答案 0 :(得分:0)
当然它具有等价物,但是要填充您不需要的表单,因为表单应该自动填充。为此,您需要使用textfields的名称创建action bean属性并初始化它们。只要您在会话中保留数据,就可以将会话值检索到操作属性。看看它是如何在简单的Hello World应用程序中完成的。