Spring、Struts2整合,velidate()验证失败返回input不进入execute()

在整合ssh的项目中,ss整合跳转action出现了问题,from表单提交action,进入velidate()验证返回一个input,不进入execute(),

一直检查配置文件和项目源码,但始终找不到源头所在,后来经过大神的一番源码解析后,终于找到了问题所在,下面上代码

 

 form表单的代码:

<s:form action="loginUser" method="POST" namespace="/page">
	<div class="infos">
	
		<table class="field">					

			<tr>
				<td colspan="2" ><s:fielderror/> ${message}</td>
			</tr>
			<tr>
				<td class="field">用 户 名:</td>
				<td><!-- <input type="text" class="text" name="name" /> -->
					<s:textfield name="user.name" cssClass="text" required="true"/>
				</td>
			</tr>
			<tr>
				<td class="field">密  码:</td>
				<td><!-- <input type="password" class="text" name="password" /> -->
				<s:password name="user.password" cssClass="text" required="true"/>
			</td>
			</tr>
		</table>
		<div class="buttons">
			<s:submit value="立即登录" />
			<input type='button' value='注册' onclick='document.location="page/register.jsp"'/>
		</div>
	</div>
</s:form>

struts2 xml:

<struts>
    <constant name="struts.i18n.encoding" value="UTF-8"/>
    <constant name="struts.ui.theme" value="simple"/>
    <constant name="struts.objectFactory.spring.autoWire" value="type"/>
    <package name="page" namespace="/page" extends="struts-default" >
        <action name="loginUser" class="landun.qiqi.action.LoginAction" >
            <!--登录成功后跳转到houseList Action -->
            <result name="success">/page/house/house_list.jsp</result>
            <result name="login">/page/login_struts2.jsp</result>
            <result name="input">fail.jsp</result>
        </action>
    </package>
    <include file="struts-user.xml"/>
</struts>

action:

    public void validate(){
        System.out.println("validateLogin^");
    }
    public String execute() {
        System.out.println("execute");
    }

运行结果:

 

调试发现的错误:

 

 

 调试了很久源码查了好多资料都没有发现问题所在,后来大神检查了一波struts.xml,发现是一条代码导致的:

原本是想设置按type来自动注入,没想到最后导致了一个蜜汁bug,这条代码具体是什么原因导致出现问题我还没弄明白;

我个人感觉是因为项目中的action是以set方式注入的bean,而这条代码设置为type,导致某个原因注入不了出现问题,以后深入

了解后再来补充!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值