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

 

 

posted @ 2020-01-08 00:14  城为唯一  阅读(10994)  评论(0编辑  收藏  举报