最近用SSH框架做项目的时候页面提交数据到后台,遇到了这个问题,百度了一下,网上的解决办法无非两种:
1.检查struts.xml ,applicationContext.xml的配置是否正确
2.配置命名空间namespa
3.检查请求路径和请求方法是否写错
试了一下,都没有解决我的问题,最后,自己研究调试了一下,发现问题原因是: 前台提交的数据与后台Action中封装的数据类型不匹配
(PS:我的Action中封装了好几张表的数据,想要同时操作,结果前台数据太多,一不小心在复选框的给值上出了问题)
前台代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>广东检验检疫(检务)网上培训系统后台管理系统</title>
<link href="../css/htlogin.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../datepicker/doTable.js"></script>
<script type="text/javascript" src="../FCKeditor/fckeditor.js"></script>
<script type="text/javascript" src="../datepicker/WdatePicker.js"></script> </head>
<body onload="getdata();">
<form name="form1" action="" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="0"
bgcolor="#D8F0FD">
<tr>
<td class="body01">
<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>
<td background="../images/ht-body01.jpg" class="body02">当前位置:培训管理-培 训教材管理-添加教材</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="body01">
<table width="100%" border="0"
cellspacing="0" cellpadding="0">
<tr>
<td colspan="5" background="../images/ht-body02.jpg"
class="body03">详细信息</td>
</tr>
<tr>
<td width="16%" class="body06">教材标题:</td>
<td colspan="4" class="body04">
<input name="book.title" type="text" class="bodytext" />
</td> </tr>
43 <tr>
44 <td width="16%" class="body06">分类专业:</td>
45 <td colspan="2" class="body04">
46 <select style="width:100px;" name="professional.profId">
47 <option selected>- 请选择 -</option>
48 <option >检务</option>
49 <option >食品</option>
50 <option >动检</option>
51 <option >植检</option>
52 <option >财务</option>
53 <option >统计</option>
54 </select></td>
55
56 <td width="17%" class="body06">专业岗位:</td>
57 <td width="32%" class="body04"><select name="post.postId">
58 <option>- 请选择 -</option>
59 <option >报检岗</option>
60 <option >计费岗</option>
61 <option >签证岗</option>
62 <option >放行岗</option>
63 <option >档案管理岗</option>
64 <option >流程管理岗</option>
65 <option >证单管理岗</option>
66 <option >印章管理岗</option>
67 <option >综合管理岗</option>
68 </select></td>
69
70 </tr>
<tr>
<td width="16%" class="body06">管理员评级:</td>
<td colspan="2" class="body04"><select name="book.levels">
<option value="一星">一星</option>
<option value="二星">二星</option>
<option value="三星">三星</option>
<option value="四星">四星</option>
<option value="五星">五星</option>
</select></td>
<td width="17%" class="body06">是否必学:</td>
<td width="32%" class="body04">
<input type="radio" name="book.isNecessary" value="0" />否
<input type="radio" name="book.isNecessary" value="1" />是
</td>
</tr> <tr class="body06">
<td width="16%" rowspan="1" class="body06">上传教材</td>
<td class="body04" colspan="4" class="body06">
<input name="book.content"
type="file" name="book.content" class="bodytext"
style="width:500px;" /> <input
type="button" value="上传" /><br /></td>
</tr> <tr>
<td width="16%" class="body06">管理员评价:</td>
<td class="body04" colspan="4"><textarea rows=4 cols=80
name="book.evaluation"></textarea></td>
</tr>
<tr>
<td width="16%" class="body06">按语:</td>
<td class="body04" colspan="4"><textarea rows=4 cols=80
name="book.chapeau"></textarea></td>
</tr>
</table></td>
</tr> <table id="objTable" cellspacing="0" cellpadding="5"
bordercolor="#abcdef" border="1" bgcolor="#D8F0FD" align="center"
width="100%">
<tbody> <tr>
<td align="right" height="35" colspan="3"><input type="image"
onclick="tbsub('save');" name="Submit223" src="../images/ht-but-OK.jpg">
<input type="image" onclick="window.history.back(1);"
name="Submit23" src="../images/ht-but-back.jpg"></td>
</tr>
</tbody>
</table> <tr>
<td class="body01"><table width="100%" border="0"
cellspacing="0" cellpadding="0">
<tr>
<td height="31" colspan="6"><table width="100%" border="0"
cellspacing="0" cellpadding="0">
<td width="80%" height="27"
background="../images/ht-body02.jpg"> 题目 </td>
<td width="10%" background="../images/ht-body02.jpg"><input
type="image" src="../images/ht-but-addtm.jpg" name="Submit224"
onclick="addfun();" /></td>
<td width="10%" background="../images/ht-body02.jpg"><input
type="image" src="../images/ht-but-back.jpg" name="Submit224"
onclick="window.history.back();" /></td>
</table></td>
</tr>
<tr>
<td width="13%" align="center" class="body05">题目类型</td>
<td width="30%" align="center" class="body05">题目</td>
<td width="18%" align="center" class="body05">供选答案</td>
<td width="19%" align="center" class="body05">操作</td>
</tr>
<tr>
<td colspan="4" align="center">暂无题目!</td>
</tr>
</table></td>
</tr> </table>
</form>
</body>
红色部分改成如下即可:
<tr>
<td width="16%" class="body06">分类专业:</td>
<td colspan="2" class="body04">
<select style="width:100px;" name="professional.profId">
<option selected>- 请选择 -</option>
<option value="1">检务</option>
<option value="2">食品</option>
<option value="3">动检</option>
<option value="4">植检</option>
<option value="5">财务</option>
<option value="6">统计</option>
</select></td> <td width="17%" class="body06">专业岗位:</td>
<td width="32%" class="body04"><select name="post.postId">
<option>- 请选择 -</option>
<option value="1">报检岗</option>
<option value="2">计费岗</option>
<option value="3">签证岗</option>
<option value="4">放行岗</option>
<option value="5">档案管理岗</option>
<option value="6">流程管理岗</option>
<option value="7">证单管理岗</option>
<option value="8">印章管理岗</option>
<option value="9">综合管理岗</option>
</select></td> </tr>
后台方法分装太多,就不贴出来了,强调一点: 注意数据类型的匹配