日期:2014-05-19  浏览次数:20683 次

struts2中的 <struts:form 标签中的action是怎样执行的?
要在页面中实现一个select从数据库中读值,jsp中我是这样写的
<struts:form action="GetXs" > 
<struts:select name="xy" headerValue="请选择学院"
  list="list" required="true"></struts:select>  
  </struts:form>
action配置如下
<action name="GetXs" class="GetXs">
<result name="success">admin/access/manageUser.jsp</result>
</action>

action 方法
public String execute() throws Exception
{
System.out.print("******************");
list = new ArrayList<String>();
list = userModualService.xsBind();
ActionContext.getContext().put("list", list);
return SUCCESS;
}
已经引入<%@ taglib uri="/struts-tags" prefix="struts" %> 标签
发现进入这个jsp页面时控制台没有输出信息"******************",也就是这个action没有执行,想问下各位这是什么原因。
大家应该能理解我的意思吧 小弟初学 谢谢

------解决方案--------------------
第一,你标签使用错了,对struts2表单标签是如<s:form action="GetXs">这样的形式,而不是以struts前缀的开头,你引入的struts好像是struts1的标签
第二,你的理解也不对,这个Action是你的页面有表单提交,而且表单提交到GetXs.action这个目标的时候,才会执行exectue这个方法,而你是直接进入这个jsp页面,这个jsp页面的表单没有提交,自然什么都没有触发,触发你的那个form配置,然后点击提交才有可能