关于struts2客户端验证问题,action多方法

jiang117 2008-11-13 02:34:25
当以个action里面有多个方法时,如果我在配置时,在struts.xml中为每个方法配置一个action
这样在客户端验证是没有问题。
但是这样为这个方法都要配置一下太麻烦了,struts2提供了动态调用方法:
如:
<action name="people" class="" />
<s:form action="people!save" namespace="/test" validate="true">
如果这样配置的话,客户端的验证JS就没有生成。

如果如下配置:
<action name="people" class="" method=“save”/>
<s:form action="people" namespace="/test" validate="true">
这样就没有问题。
那struts2提供了动态调用方法还有什么意义呢?
...全文
519 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
山巅 2009-04-02
  • 打赏
  • 举报
回复
谢谢两位,之前我在项目里一直都没有办法生成客房端js,后面参考了两位的做法之后,现在可以了!
jiang117 2008-11-14
  • 打赏
  • 举报
回复
谢谢了,我这上不了qq,估计应该是double的问题,我换了int就没问题了。
tzb08 2008-11-13
  • 打赏
  • 举报
回复
qq发来 我加你
jiang117 2008-11-13
  • 打赏
  • 举报
回复
代码只有下面validation了,其余的都贴出来了
<field name="salary">
<field-validator type="double">
<param name="minInclusiveValue">10.1 </param>
<param name="maxInclusiveValue">20.1 </param>
<message>salary ${minInclusiveValue} between ${maxInclusiveValue}</message>
</field-validator>

</field>
2个问题都不行
tzb08 2008-11-13
  • 打赏
  • 举报
回复

第二个问题

<field name="salary">
<field-validator type="double">
<param name="minInclusiveValue">10.1 </param>
<param name="maxInclusiveValue">20.1 </param>
<message>salary needs to be between ${minInclusiveValue} and ${maxInclusiveValue}</message>
</field-validator>
</field>



第一个问题的话,我没遇到过,把用到的代码和配置文件贴出来贴全点
jiang117 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jiang117 的回复:]
谢谢 tzb08
但是这样做又有个新问题
如:通过一个add的连接进入到下面的页面,页面中的form如下定义:
<s:form action="listAction!save" >
这样生成的源码发现成了:
<form action="/listAction!save!save.action" >
重复了save了???

还有个验证的问题请教
<field name="salary">
<field-validator type="double">
<param name="minInclusiveValue">10.1 </param>
<param name="maxInclusiveValue">…
[/Quote]

那这2个问题有什么办法解决呢?
tzb08 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jiang117 的回复:]
save 是PeopleAction的一个方法名呀。在JSP的form中配置了的呀,在执行的时间就替换了method={1}
[/Quote]

恩,我看错了
jiang117 2008-11-13
  • 打赏
  • 举报
回复
save 是PeopleAction的一个方法名呀。在JSP的form中配置了的呀,在执行的时间就替换了method={1}
tzb08 2008-11-13
  • 打赏
  • 举报
回复

<action name="people!*" class="com.test.action.PeopleAction" method="{1}">
<result>/index.jsp </result>
<result name="input">/addPeople.jsp </result>
<result name="add">/addPeople.jsp </result>
</action>


这里面我怎么没看到save这单词呢
jiang117 2008-11-13
  • 打赏
  • 举报
回复
<action name="people!*" class="com.test.action.PeopleAction" method="{1}">
<result>/index.jsp</result>
<result name="input">/addPeople.jsp</result>
<result name="add">/addPeople.jsp</result>
</action>

jsp
<s:form action="people!save" namespace="/test" validate="true">
<s:textfield label="薪水" name="salary" />
<s:submit />
</s:form>

生成静态文件
<form id="people_save" name="people!save" onsubmit="return validateForm_people_save();" action="/struts2/test/people!save!save.action" method="post">

看action的值。但这样程序是没有问题的,目前运行来看,一切正常。
但这样看着也别扭,也不是知道有没有隐藏什么错误。
tzb08 2008-11-13
  • 打赏
  • 举报
回复
struts.xml贴出来看看
jiang117 2008-11-13
  • 打赏
  • 举报
回复
谢谢 tzb08
但是这样做又有个新问题
如:通过一个add的连接进入到下面的页面,页面中的form如下定义:
<s:form action="listAction!save" >
这样生成的源码发现成了:
<form action="/listAction!save!save.action" >
重复了save了???

还有个验证的问题请教
<field name="salary">
<field-validator type="double">
<param name="minInclusiveValue">10.1</param>
<param name="maxInclusiveValue">20.1</param>
<message>数字范围不正确</message>
</field-validator>
</field>
double的数字大小范围怎么限制没有?
tzb08 2008-11-13
  • 打赏
  • 举报
回复


<action name="listAction!*" method="{1}" class="你的包名.SongListAction ">
<result name="success">index.jsp </result>
</action>


用这种方式实现

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧