postman用产品名字查询产品信息报错

 

@ResponseBody
	@RequestMapping(value = "/rest/product/productname/{ productname }",method=RequestMethod.GET)
	public RequestResult<Product> selectProductByName(@PathVariable(value="productname")  String productname){
		List<Product> productList = productService.selectProductByName(productname);
		if(productList!=null) {
			result.setCode(200); //网络请求返回成功,状态码200
			result.setMessage("成功查询到产品");
			result.setData(productList);
			result.setSuccess(true);
		}else {
			result.setCode(404); // NOT FOUND [*] 用户发出的请求针对的是不存在的记录,服务器没有进行操作
			result.setMessage("没有查询到产品");
			result.setData(null);
			result.setSuccess(false);
		}
	    return result;
	}
package service;

import java.util.List;
import pojo.Product;
public interface ProductService {
	public List<Product> allProduct();
	int insertProduct(Product p);
	int deleteProduct(int id);
	public List<Product> selectProductById(int id);
	public List<Product> selectProductByName(String productname);
	
	
}
package service.Impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import dao.ProductMapper;
import pojo.Product;
import service.ProductService;

@Service
@Repository 
public class ProductServiceImpl implements ProductService{

	@Autowired
	private ProductMapper productMapper;
    @Override
	public List<Product> allProduct() {
		return productMapper.allProduct();
	}
	@Override
	public int insertProduct(Product p) {
		return productMapper.insertProduct(p);
	}
    @Override
    public int deleteProduct(int id) {
		return productMapper.deleteProduct(id);
	}
    @Override
    public List<Product> selectProductById(int id) {
		return productMapper.selectProductById(id);
	}
    @Override
	public List<Product> selectProductByName(String productname) {
		return productMapper.selectProductByName(productname);

		
	}
    

}

 

package dao;

import java.util.List;

import pojo.Product;

public interface ProductMapper {
public List<Product> allProduct();

public int insertProduct(Product p);

public int deleteProduct(int id);
public List<Product> selectProductById(int id);

public List<Product> selectProductByName(String productname);



}

 

	<select id=" selectProductByName" parameterType="String" resultType="pojo.Product">
		select * from product where productname like concat('%',#{productname},'%')
    </select>
	

postman可以查询全部产品的信息前面用id查询也是可以的删除产品等操作都是可以运行然后用产品名字查询产品信息就报错了(详见第一张 

 

 

{ productname } 占位符里有空格吧

参考这个 https://blog.csdn.net/xml1996/article/details/100063991https://blog.csdn.net/a910196454/article/details/106166693  

字符串类型的方法参数缺少URI模板变量“productname”