jsp页面中怎么利用a标签的href进行传递参数以及需要注意的地方
jsp页面中:
<a href="${pageContext.request.contextPath }/infoController/getProductInfo?productIdStr=<%=image.getProductId() %>"><%=product.getName() %></a>
这是正确写法。
需要注意的地方:
1、传递的参数是数字
<a href="${pageContext.request.contextPath }/infoController/getProductInfo?productIdStr=<%=image.getProductId() %>"><%=product.getName() %></a>
2、传递的参数是字符串
<a href="${pageContext.request.contextPath }/infoController/getProductInfo?productIdStr='<%=image.getProductId() %>'"><%=product.getName() %></a>
注意多了个单引号''
后台直接用request.getParameter("productIdStr"); 接收就可以了。
此处也有要注意的地方:
接收后要进行判空,否则会报类型转换错误:java.lang.NumberFormatException: For input string: ""
以下是正确代码参考:
package com.yq.cn.controller; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.yq.cn.dao.entity.Product; import com.yq.cn.service.IProductService; @Controller @RequestMapping("/infoController") public class InfoController { @Autowired private IProductService productService; @RequestMapping("/getProductInfo") public String getProductInfo(HttpServletRequest request,HttpSession session) { String productIdStr = request.getParameter("productIdStr"); if (productIdStr != null && !productIdStr .equals("")) { System.out.println("===="+productIdStr); Long productId = Long.parseLong(productIdStr); Product product = productService.getproductInfo(productId); session.setAttribute("product", product); } return "info"; } }
学习没有一蹴而就,放下急躁,一步一步扎实前进