jsp怎么传递long类型参数
时间: 2024-12-31 22:44:21 浏览: 13
### 如何在 JSP 中传递 `long` 类型参数
#### 使用 URL 参数传递 `long` 类型参数
通过URL中的查询字符串可以方便地向另一个页面传递参数。当需要传递 `long` 类型的数据时,通常会先将其转换成字符串形式附加到目标链接后面作为查询参数。
例如,在Servlet中可以通过如下方式设置重定向并附带一个名为`id`的长整数类型的参数[^3]:
```java
// 假设 id 是一个 long 类型变量
long id = 123456789L;
response.sendRedirect("targetPage.jsp?id=" + id);
```
接收端即`targetPage.jsp`文件内,则可通过`request.getParameter()`获取该值,并利用Java内置的方法将它解析回原始数据类型:
```jsp
<%
// 获取来自请求的ID参数
String paramId = request.getParameter("id");
// 将接收到的字符串转为Long对象
Long receivedId = null;
try {
receivedId = Long.parseLong(paramId);
} catch (NumberFormatException e) {
out.println("Invalid ID format.");
}
%>
<p>The received ID is <%=receivedId %>.</p>
```
#### 利用表单提交传递 `long` 类型参数
除了直接拼接到URL上之外,还可以借助HTML表单调用来发送更复杂的信息给服务器。对于POST请求来说,这尤其有用因为这样不会暴露敏感信息于浏览器地址栏之中。
创建包含隐藏字段或输入框用于存储要传输的数值:
```html
<form action="processForm.jsp" method="post">
<!-- 隐藏域 -->
<input type="hidden" name="userId" value="<%=someLongValue %>"/>
</form>
```
或者让用户自己填写:
```html
<form action="processForm.jsp" method="post">
User ID:<br/>
<input type="text" name="userId"/><br/><br/>
<button type="submit">Submit</button>
</form>
```
随后可以在处理此表单的目标JSP页面里读取这些信息:
```jsp
<%
// 处理 POST 请求中的 userId 参数
String strUserId = request.getParameter("userId");
Long userId = null;
if(strUserId != null && !strUserId.isEmpty()){
try{
userId = Long.valueOf(strUserId);
}catch(NumberFormatException ex){
out.print("Error converting user ID to number.");
}
}
if(userId!=null){
out.printf("User ID submitted was: %d", userId.longValue());
}
%>
```
阅读全文