struts2 一用校验就弹错:No result defined for action com.action.User1 and result input

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2 一用校验就弹错:No result defined for action com.action.User1 and result input相关的知识,希望对你有一定的参考价值。

1.用 struts 2校验框架时,其他东西写好没事,一旦把 CLASS-validation.xml加进去后运行就会弹出这个错误。
2. 在Action里面添加 validate()方法来验证的话还是弹出一样的错误。

2000年5月发展至今,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。市场占有率超过20%,拥有丰富的开发人群,几乎已经成为了事实上的工业标准。但是随着时间的流逝,技术的进步,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。

对于Struts1框架而言,由于与JSP/Servlet耦合非常紧密,因而导致了一些严重的问题。首先,Struts1支持的表现层技术单一。由于Struts1出现的年代比较早,那个时候没有FreeMarker、Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。其次,Struts1与Servlet API的严重耦合,使应用难于测试。最后,Struts1代码严重依赖于Struts1 API,属于侵入性框架。

从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、Tapestry和spring MVC等。这些框架由于出现的年代比较近,应用了最新的设计理念,同时也从Struts1中吸取了经验,克服了很多不足。这些框架的出现也促进了Struts的发展。

Struts1已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。Struts 2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。

Struts1分化出来的另外一个框架是Shale。这个框架远远超出了Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts1的升级。
参考技术A 这个问题我刚解决,因为validation文件验证如果验证出你前端输入的数据不合你定的规定,就会使用struts.xml中配置的<result name="input">/hello.jsp</result>来定向一个页面或者action,你应该是没有配置name="input"的result。

No result defined for action cn.crm.action.LinkManAction and result input

这是struts2的一个拦截器报的错误,当你的form中的数据有问题,比如说
<input type="text" name="receiverLoginID" value="<%=name%>"/>
当 name值为NULL时,就出这个错了,所以你可以在当前页面加入以下标签
<div style="color:red">
    <s:fielderror />
</div>
它就会显示拦截器的错误,并在struts的XML中对应action里加如
<result name="input">/当前页面</result>
错误信息就会返回到该页面了

以上是关于struts2 一用校验就弹错:No result defined for action com.action.User1 and result input的主要内容,如果未能解决你的问题,请参考以下文章

struts2中的Ajax异步校验

Struts2.3动态调用报 No result defined for action 错误

[Struts2] No result defined for action ... and result input &amp; Invalid field value for field

Struts2输入错误处理

Struts2 处理AJAX请求

No result defined for action com.action.Actionxxx and result xxx