SSH 项目中,action获取jsp页面传过来的select值
项目框架S2SH,jsp页面如下,select列表设为multiple。为了能在action里取到前台界面select列表的多选值,瞎搞了两天,今天终于成功。其实后台action取前台jsp页面的值很简单,废话不多说,先贴代码:
<body>
<form action="sendMsg.action?senderId=${users.id }&username=${users.username}" method="post"
id="form" name="form" onsubmit="getIdValue()">
<input type="hidden" value="" name="" id="ids" />
<table width="500" height="220" border="1" align="center">
<tr>
<td colspan="2">
【欢迎使用】
</td>
</tr>
<tr>
<td width="88">
标题:
</td>
<td width="396">
<input type="text" name="title" id="title" />
</td>
</tr>
<tr>
<td>
内容:
</td>
<td>
<textarea name="content" id="content" cols="45" rows="5">
接收者:
${t}
action代码:
...
//定义一个与jsp页面相同的变量
private String userId; //setter getter方法略
...
public String sendMsg() throws Exception{
String username = ServletActionContext.getRequest().getParameter("username"); //获取用户名
String t[] = ServletActionContext.getRequest().getParameterValues("userId"); //这里获取时,变量名就直接写jsp页面的就行。
System.out.println(t[0]); //测试输出成功
System.out.println(t[1]);
相关文档:
1.request对象
该对象封装了用户提交的信息,通过调用该对象的响应的方法可以获取用户提交的信息。
当request对象获取用户提交的汉字字符时,会产生乱码,由下面的方法可以解决:
Sting s2 = new String(s1.getBytes("iso8859-1"),"GB2312")进行转换。
request常用的方法 ......
JSP(Java Server Page)
JSP是服务器端运行的页面,JSP本就是一个文档,他不仅可以包含静态的HTML代码,也可以包含动态的JAVA代码,服务器容器可以将JSP转换成Servlet发布,并接受请求。
Jsp文件只需放在应用文件下就可以了。
JSP例子:
<html>
<head><title>time</title></head>
& ......
<%
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
List stafflist = ((StaffDAO)ctx.getBean("StaffDAO")).findAll();
request.setAttribute("stafflist",stafflist);
%> ......
一,纯粹的jsp页面中文乱码
原因:对jsp代码的编写,默认的字符集事“ISO-8859-1”,如果代码中存在中文,则会出现乱码!
解决办法:在page中加上contentType="text/html;charset=gb2312",采用国标来翻译页面中的代码!
二,post方式提交表单出现乱码
原因: ......