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"; } }