效果如下:
点击发送拿到userID和输入框内容,
表单get提交的方式action是不允许拼接的,get请求后会自动把输入框的内容拼接到地址栏而忽略你的action拼接。
所以表单get提交只能传递一个参数,如果想实现传递多个参数,例如:
input框中输入的内容+所点击用户的ID,
那就需要用隐藏input的形式传递:
<input type="hidden" name = "flag" value = "${b.getrNo()}">
<input type="text" id = "talk_input" name = "talk_input">
<input type="submit" value="发送"></td>
点击发送就会把两个input值传过去:xxxx?talk_input=“输入框中的值”&flag=“点击的userID”
具体代码如下:
JSP:
<c:forEach items="${requestScope.list}" var="b" varStatus = "i">
<form action="sendMessageServlet" method="get">
<tr align="center" bgcolor="white">
<td>${b.getrName()}</td>
<td>${b.getRsex()}</td>
<td>${b.getRage()}</td>
<td>${b.getXz()}</td>
<td>${b.getXx()}</td>
<td>${b.getComment()}</td>
<td><input type="text" id = "talk_input" name = "talk_input">
<input type="hidden" name = "flag" value = "${b.getrNo()}">
<input type="submit" value="发送"></td>
</tr>
</form>
</c:forEach>
servet:
String text = req.getParameter("talk_input");//获取表单中属性值
text =new String(text.getBytes("iso8859-1"),"UTF-8");//解决get方法乱码问题。
//String c_name = req.getParameter("c_name");
String toUser = req.getParameter("flag");
System.out.println(text);
HttpSession session=req.getSession();//返回与当前request相关联的session,如果没有则在服务器端创建一个;
String fromUser = (String) session.getAttribute("RNO");
System.out.println(toUser+fromUser+text);