2012-06-29 22 views
0

我想用href而不是按鈕來傳遞輸入數據。問題是我正在發送一個數組,我的循環輸入數據正在被存儲,所以它創建了多個鏈接。採取什麼行動來解決這個問題。通過帶有href鏈接的JSP輸入

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Firstjsp</title> 
</head> 
<body> 
<% String locations[] = {"Loan 1", "33.890542", "151.274856", "Address 1","true", "-35404.34"}; 
for (int i =0; i<locations.length; i++) 
{ 
%> 
<form name="submitForm" method="POST" action="Mapper.jsp"> 
<Input type = "Hidden" name = "loc" value = "<%= locations[i] %>"> 
<A HREF="Mapper.jsp">View Map</A> 
</form> 

<% 
} 
%> 

</body> 
</html> 
+0

在HTML中,標籤和屬性應該是所有小寫。不要利用它們。 – BalusC

回答

2

HTTP請求查詢字符串的格式爲name1=value1&name2=value2&name3=value3。因此,您只需將String[]轉換爲String即可。其他要求是使用URLEncoder來對名稱和值進行編碼,以便將任何特殊字符轉換爲%nn格式以便在URL中正確使用。

這應該這樣做:

StringBuilder builder = new StringBuilder(); 

for (String location : locations) { 
    if (builder.length() > 0) builder.append("&"); 
    builder.append("loc=").append(URLEncoder.encode(location, "UTF-8"); 
} 

String locationsQuery = builder.toString(); 

然後,你可以按如下所示鏈接指定:

<a href="Mapper.jsp?<%=locationsQuery%>">View Map</a> 

如何獲得它在對方已經在你的previous question回答。


無關的具體問題,在JSP中編寫原始的Java代碼officially discouraged since a decade。您可以通過JSTL<c:url>,<c:param><c:forEach>以更簡單的方式實現。這裏有一個例子開球假設你已經在你的預處理servlet或JSP中的頂部做了request.setAttribute("locations", locations)

<c:url value="Mapper.jsp" var="mapperURL"> 
    <c:forEach items="${locations}" var="loc"> 
    <c:param name="loc" value="${loc}" /> 
    </c:forEach> 
</c:url> 
<a href="${mapperURL}">View Map</a>