spring mvc 传参数

1.页面:(1)js传参数:location.href="${ctx }/forum/changeCtm.html?ctmId="+id;

(2)将内容写在form表单里面,然后用表单提交


<form method="post" action="${ctx }/forum/savePost.html" name="form1">
<input type="hidden" name="postId" value="${postId }">
<input type="hidden" name="postType" value="${forumPost.postType }" id="postType">
<input type="hidden" name="plateName" value="${forumPost.plateName }" id="plateName">
<a href="javascript:void(0);" class="comBtn" onclick="submitForm1(this);">提交</a>
</form>
如果需要验证表单,可以在js里面验证之后,然后用 "表单名".submit();来提交
function submitForm1(src){
//………………
form1.submit();
}
也可以修改表单提交的action,然后再提交。此方法可实现在同一表单内,点击不同按钮,跳转的不同的action
form1.action="${ctx }/forum/savePostReFeedback.html?postReId="+id ;
form1.submit();

后台:可以有三种方法获取

  (1)@RequestMapping(value="/changeCtm")
    public String changeCtm(Model model,HttpServletRequest request,Long ctmId){}

  直接在方法里面写参数名

  (2)@RequestMapping(value="/changeCtm")
    public String changeCtm(Model model,HttpServletRequest request,Customer customer){}

  Customer里面有属性,ctmId

  (3)@RequestMapping(value="/changeCtm")
    public String changeCtm(Model model,HttpServletRequest request){

    Long ctmId = request.getParameter("ctmId");

  }

  参数列表里面不用写,在方法体内通过原始方法获取

2.用json实现与后台交互

(1)前台:将参数写进链接里面

$.post("${ctx}/forum/savePostVote-" + postId + "-"+flag+".json", null, function(result) {
        result = eval("(" + result + ")");
        if (result.status == "true" || result.status == true) {
            
            alert(result.msg);
            state=0;
        } else {
            alert(result.msg);
            state=1;
        }
    });

后台,在映射的url里面配置对照的参数,然后在方法参数列表里面配置 处理requet uri 部分的注解PathVariable,与url参数对应即可

@RequestMapping(value="/savePostVote-{postId}-{flag}")
    public ResponseEntity<String> savePostVote(Model model , HttpServletRequest request,@PathVariable(value = "postId") Long postId,@PathVariable(value = "flag") Integer flag){}

(2)前台:将参数写进params里面,传到后台

var params = {
            id : id
        };
        $.post("${ctx}/admin/forum/deletePlate.json", params, function(
                result) {
            result = eval("(" + result + ")");
            if (result.status == "true" || result.status == true) {
                alert(result.msg);
                window.location.reload();
            }else{
                alert(result.msg);
            }
        });

后台:将参数写在参数列表内

@RequestMapping(value = "/deletePlate")
    public ResponseEntity<String> deletePlate(Model model,HttpServletRequest request,String id) throws Exception {}
原文地址:https://www.cnblogs.com/cuiyf/p/3937585.html