网页绘制图片 传参

SpringMVC项目中通过下面的URL进行GET请求。当url地址中有多个小数点的时候。后台通过@PathVariable来获取会丢失部分数据。丢失最后一个小数点后的数据。

 @PathVariable是用来对指定请求的URL路径里面的变量

    eg: Java代码

  @RequestMapping(value = "form/{id}/apply", method = {RequestMethod.PUT, RequestMethod.POST})

           {id}在这个请求的URL里就是个变量,可以使用@PathVariable来获取

           @PathVariable和@RequestParam的区别就在于:@RequestParam用来获得静态的URL请求入参

    @RequestMapping(value = "/getQR/{content:.+}", method = RequestMethod.GET)   
    public void getQR(@PathVariable("content") String content,
            HttpServletRequest req,
            HttpServletResponse resp) {
        QRCodeUtil.buildQRCode(content, req, resp);
    }

 通过传递src路径的方式绘制图片。

<script type="text/javascript">
		function createQR() {
			var content = $('#text-content').val();
			var url = "getQR/" + content ;
			alert(url);
			document.getElementById("QRImage").src= url;
		}
</script>

缺点:特殊字符用PathVariable来传递变量时,要注意小数点截断问题。传递参数为url时特殊字符会报bad request错误。如;,/等等。

后采用url?a=...&&b=...方式传递参数。

	<script type="text/javascript">
		function createQR() {
			var content = $('#text-content').val();
			var t = encodeURIComponent(content);
			var url = "getQR?content=" + t ;
			alert(url);
			document.getElementById("QRImage").src= url;
		}
	</script>

 使用var t = encodeURIComponent(content);的原因是url中中文参数乱码。

后台直接用getParameter即可。

    @RequestMapping(value = "/getQR", method = RequestMethod.GET)
    public void getQR(
            HttpServletRequest req,
            HttpServletResponse resp) {
        String content = req.getParameter("content");
        QRCodeUtil.buildQRCode(content, req, resp);
    }

 

转载于:https://my.oschina.net/yuhangyes/blog/888574

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值