晚辈刚学java和struts不到一个月,公司项目中有一个这样的需求:用一个action接受GET或POST过来的参数,验证这些参数,若成功写库若失败返回哪些参数错了,返回的格式统一是json。我大致的已经实现了这个结构,卡在了验证这块。因为参数很多且验证规则较为复杂,我想用struts2的验证配置去实现,但似乎它总要通过标签输出在页面上:<s:fielderror/>。请问大家,有没办法在action内部捕获<s:fielderror/>这里面的东西?我想捕获后拼装成map输出到json中。或者说,大家在做这种没有表单输入框没有页面的验证时是怎么做的?万分感谢。

解决方案 »

  1.   

    估计你说的是ajax表单~ 推荐一个文章:http://tech.it168.com/o/2007-12-30/200712301129469.shtml
    如果用struts2的话一般用 dwr 配合做,不过建议你用js自己写,这样子速度可能还快~
      

  2.   

    用DWR吧
    这里有整套学习资料
    http://download.csdn.net/source/1235350
      

  3.   

    我没有表单的,我的输出是JSON,调用我的action也是别人的程序。别人的程序调用 -> 我的action -> 输出json格式结果我的action这里要验证一堆参数,不符要求,就在json中输出。不需要也没办法用到ajax,而且也不能直接用struts2默认的那种验证方式(因为它最终验证结果是输出在<s:fielderror/>中的)。或者我换个问法:
    1.大家比如给伙伴写个接口,这个接口要传入很多参数,你必须要做验证,大家是怎么做的?
    2.怎么样直接在struts2的action里面,获取到原本应该输出在<s:fielderror/>标签中的内容?
      

  4.   

    晕~ 你说的是service接口把~
    那你就让这个action接受参数,让后直接用JSON库打印出来就可以了阿~
      

  5.   

    我就是想在JAVA里面做个后端验证(非js验证),然后验证后的错误信息是个变量,我需要放到我特定的位置.我看了struts2的验证,默认情况下是带有表单提交,页面上用<s:fielderror/>输出错误信息,能不能改下这个逻辑(或者不用改默认已经支持),即错误信息不默认输出在view层,而仍然是像上面所说的,存成一个变量,要不要输出到页面上,怎么输出等这些都我自己来控制.谢谢