struts2 属性加了set方法后Action进不去了一直出404
JSP代码<formaction="item-saveItem.htm"method="post"><h2align="center">参与投票</h2><inputty...
JSP代码
<form action="item-saveItem.htm" method="post">
<h2 align="center">参与投票</h2>
<input type="hidden" name="item.subject.id" value="${sub.id }"/>
<table width="550" border="0" align="center">
<tr>
<th colspan="2" align="left" scope="col">${sub.title }</th>
</tr>
<tr>
<td colspan="2">共有 ${sub.option.size() } 个选项,已有 ${sub.item.size() } 个网友参与了投票。</td>
</tr>
<c:forEach var="op" items="${sub.option }" varStatus="i">
<tr>
<td>${i.count }.</td>
<td>
<input type="<c:if test="${sub.type==1 }">radio</c:if><c:if test="${sub.type==2 }">checkbox</c:if>" name="item.option.id"/>${op.optionName}</td>
</tr>
</c:forEach>
<tr>
<td colspan="2">
<input type="submit" class="btn" value="投票"/>
<input type="button" class="btn" value="查看"/>
</td>
</tr>
</table>
</form>
struts.xml代码
<action name="item-*" class="action.ItemAction" method="{1}">
<result name="saveItem">/success/saveItem.jsp</result>
</action>
action类代码
public class ItemAction extends ActionSupport {
private Item item;
ItemDao dao=new ItemDao();
HttpServletRequest req=ServletActionContext.getRequest();
/**
* 投票
* @return
*/
public String saveItem(){
System.out.println(1123);
User user=(User) req.getSession().getAttribute("user");
item.setUser(user);
dao.add(item);
return "saveItem";
}
public static void main(String[] args) {
Session s=HibernateUtil.getSession();
Item item=new Item();
User user=(User)s.createCriteria(User.class).uniqueResult();
Option op=(Option)s.get(Option.class, 1);
Subject sub=(Subject)s.get(Subject.class, 1);
item.setUser(user);
item.setOption(op);
item.setSubject(sub);
new ItemDao().add(item);
}
public void setItem(Item item) {
this.item = item;
}
public Item getItem() {
return item;
}
}
已解决,因为不能用item.subject.id,item.option.id
,这种方式去传值 展开
<form action="item-saveItem.htm" method="post">
<h2 align="center">参与投票</h2>
<input type="hidden" name="item.subject.id" value="${sub.id }"/>
<table width="550" border="0" align="center">
<tr>
<th colspan="2" align="left" scope="col">${sub.title }</th>
</tr>
<tr>
<td colspan="2">共有 ${sub.option.size() } 个选项,已有 ${sub.item.size() } 个网友参与了投票。</td>
</tr>
<c:forEach var="op" items="${sub.option }" varStatus="i">
<tr>
<td>${i.count }.</td>
<td>
<input type="<c:if test="${sub.type==1 }">radio</c:if><c:if test="${sub.type==2 }">checkbox</c:if>" name="item.option.id"/>${op.optionName}</td>
</tr>
</c:forEach>
<tr>
<td colspan="2">
<input type="submit" class="btn" value="投票"/>
<input type="button" class="btn" value="查看"/>
</td>
</tr>
</table>
</form>
struts.xml代码
<action name="item-*" class="action.ItemAction" method="{1}">
<result name="saveItem">/success/saveItem.jsp</result>
</action>
action类代码
public class ItemAction extends ActionSupport {
private Item item;
ItemDao dao=new ItemDao();
HttpServletRequest req=ServletActionContext.getRequest();
/**
* 投票
* @return
*/
public String saveItem(){
System.out.println(1123);
User user=(User) req.getSession().getAttribute("user");
item.setUser(user);
dao.add(item);
return "saveItem";
}
public static void main(String[] args) {
Session s=HibernateUtil.getSession();
Item item=new Item();
User user=(User)s.createCriteria(User.class).uniqueResult();
Option op=(Option)s.get(Option.class, 1);
Subject sub=(Subject)s.get(Subject.class, 1);
item.setUser(user);
item.setOption(op);
item.setSubject(sub);
new ItemDao().add(item);
}
public void setItem(Item item) {
this.item = item;
}
public Item getItem() {
return item;
}
}
已解决,因为不能用item.subject.id,item.option.id
,这种方式去传值 展开
1个回答
2015-04-18 · 知道合伙人互联网行家
关注
展开全部
不仅Action的原因很多 个人总结:
1、struts 配置文件的问题 要么是没有extends struts-default 要么就是class指定不对
2、请求路径不正确!
3、jar包没有导入
4、没有配置web.xml文件
5. 请求的后缀名是否正确 /* *.do *.action 差不多就是这些
1、struts 配置文件的问题 要么是没有extends struts-default 要么就是class指定不对
2、请求路径不正确!
3、jar包没有导入
4、没有配置web.xml文件
5. 请求的后缀名是否正确 /* *.do *.action 差不多就是这些
追问
这些配置都没错,因为我其他的action都可以正常访问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询