Spring MVC 从jsp页面传值到Controller方法里

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC 从jsp页面传值到Controller方法里相关的知识,希望对你有一定的参考价值。

我的后台代码
@RequestMapping("/query")
public String queryByOrderId(HttpServletRequest request,@RequestParam(value="orderId",required=false) Long orderId , Model model) throws ParseException
DataOrder order = biz.getById(orderId);
String points = "该订单不存在!";
if(order == null)
request.setAttribute("points", points);
else
List<DataOrder> listDataOrder = biz.queryorderByOrderId(orderId);
model.addAttribute("listDataOrder", listDataOrder);

return ACTION + "listOrders.jsp" ;


前台
<strong>订单号:</strong>
<input type="submitQuery" id="queryTxt" name="orderId"/>

<a href="<%=basePath%>dataOrder/queryorder.do?orderId=$orderId">搜索</a>

报错信息
org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: 无效的列类型
; uncategorized SQLException for SQL []; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效的列类型
说是orderId为空,应该怎么改,求教

orderId 不能为空。

前端 orderId 的获取不能用 $orderId. 应该用javascript的 document.getElementById("queryTxt") 获取到 input 对象框,然后 input.value的方式去取orderId的值,最后点击url时把它传到后端。

参考技术A

$orderId 这个没取到标签的值吧,建议用按钮<button onclick="fuc()">

再写个

fuc()
    var vv = document.getElementById("queryTxt").value;
    window.open("<%=basePath%>dataOrder/queryorder.do?orderId="+vv) ;

这样就可以了

追问

你说的我试过了,值是可以取到了,window.open是打开新的页面,我就想在原有的页面显示结果,应该怎么弄

本回答被提问者采纳

jsp与jsp页面之间传值中文,页面显示乱码问题

xxx.jsp 页面传值到 confirm.jsp 页面

在拼接url时,对于中文名称字段应该加上 encodeURIComponent 方法,对中文进行十六进制编码

window.location.href = "${ctx}/cms/manage/confirm.jsp?applicantName="+encodeURIComponent(applicantName); 

 

confirm.jsp页面接收

因为这里是ISO-8859-1编码的 所以需要转换 <%=new String(request.getParameter("applicantName").getBytes("ISO-8859-1"),"utf-8") %>

<tr name="postalAddress">
  <td>收件人:</td>
  <td ><input type="text" id="Addresser" name="Addresser" value="<%=new String(request.getParameter("applicantName").getBytes("ISO-8859-1"),"utf-8") %>"/></td>
</tr>

 

以上是关于Spring MVC 从jsp页面传值到Controller方法里的主要内容,如果未能解决你的问题,请参考以下文章

怎么从servlet传递一个值,然后在一个jsp页面得到这个值

两个jsp页面如何传值

jsp页面传值给另一个jsp页面,怎么接收

JAVA后台 关于如何从后台传递信息在jsp前端

jsp中button怎么传值

jsp页面像action中传值问题,需要传递一个map