大哥,你的username和password的setXXX()和getXXX()方法呢?不写怎么可能取到啊?
Struts2你可以用验证框架啊!使用simple主题的时候,在页面上写<s:fieldError>标签就可以输出校验错误的信息了啊!
Struts2的东西都在其值栈(ValueStack)对象中,你不用它的标签?简直是笑话啊!

解决方案 »

  1.   

    即使不用验证框架,你的addFieldError方法也是可以用<s:fieldError name="user.name"/>取出对象的错误信息的啊!Struts2的xhtml和ajax主题是不太好看!你可以使用全局配置将整个应用都改成theme="simple"的哦!它的标签你就可以自己布局了啊!不过还是建议你学学Freeer模板语言,很简单的哦!
      

  2.   

    to:andrew830314
    非常感谢你的回答。你的username和password的setXXX()和getXXX()方法呢?不写怎么可能取到啊? 
    ==============================================
    恩,忘了写了,应该是要有的,否则在action 中就取不到了,我面临的问题的在返回的页面中,怎么取到错误信息
    因为我用的是普通jsp,没有用任何struts2标签,用theme=simple确实可以更好的布局,但它的样式是struts定了的,确实
    不好看,而且用textfield生成那堆tr td够那个的了,你的addFieldError方法也是可以用 <s:fieldError   name="user.name"/> 取出对象的错误信息的啊!
    ========================================
    有待验证,好像有会将全部的错误信息都放上去的问题
    <s:fieldError   name="username"/> 结果是将username,userpassword的错误信息都显示出来了
    可能是我写错了什么地方吧Struts2的东西都在其值栈(ValueStack)对象中,你不用它的标签?简直是笑话啊!
    ========================================================
    既然是返回jsp的,request session application我想错误信息肯定就在这里面的吧,只不过我不知道在哪个里面
    以哪个名字存放的
      

  3.   

      在群里一位朋友的友情帮助下,问题解决了,确实是放在其值栈(ValueStack)对象中的,而ValueStack就是
    放在request中的,这样,我们只要知道了它存放的路径,就可以直接在jsp里从request对象取出来,不需要任何struts2标签就可以显示错误信息了,这样临时解决了struts2显示的错误信息位置不好排版,样式难看等问题.想放哪就放哪了
      

  4.   

    忍不住说一下
    <s:fielderror>
    <s:param>username</s:param>
    </s:fielderror>
    这种写法才只显示username的错误
    虽然已经结贴,但还是写出来让后人参考
      

  5.   

    请问大家如何定义 fielderror 回显得错误信息,它把表格撑得很大。谢谢,请一定指点
      

  6.   

    NND
    花了一天, 最后还是用样式控制来解决这个问题
    可以在CSS中定义
    .formFieldError {
    font-family: verdana, arial, helvetica, sans-serif;
    font-size: 12px;
    color: #FF3300;
    vertical-align: bottom;
    }.formFieldError ul{
        margin: 0px;
        padding: 3px;
        vertical-align: middle;
    }
    而后使用类似用
    <td class="formFieldError"><s:fielderror><s:param value="%{'userRecord.lastname'}"/></s:fielderror></td>
    就可以解决样式不正的问题另
    上面说的"直接在jsp里从request对象取出来,不需要任何struts2标签就可以显示错误信息"
    指的是怎样做来着, Google半天也没找着
      

  7.   

    struts2 有bug, 指定theme="simple"根本无效果
      

  8.   

    其实是放在集合中的,用的时候再从集合中取出来就是了,Action级别的是放再ArrayList中的,而Field级别是放在一个Map中的,Map中是键值对,键就是你所起的名字,值是是一个ArrayList,所以有时候一个名字可以取到若干个错误消息。
      

  9.   


    不需要那么复杂的,你将struts-core*中的template解出来,然后你把它放到项目的WEB-INF下,在struts.properties中添加代码
    struts.ui.theme=simple
    struts.ui.templateDir=WEB-INF/template
    然后修改下simple下的fielderror.ftl文件,将该文件中的<li>和 </li>删除;或者完全拷贝simple的内容定义一个自己的UI;
    比如将simple拷贝一份命名为default,同样修改fielderror.ftl,在新建一个文件为theme.properties,添加内容parent = simple再修改struts.properties的struts.ui.theme=default;这样每个文件的theme就不要指定了
      

  10.   

    建议需要定义样式的同志看下自定义theme 这章的内容
    还有 theme="simple" 是放在form标签内的
      

  11.   

    在request怎么取出来呀楼主具体说下啊.
      

  12.   

    <s:property value="fielderrors["username"][0]"/>
      

  13.   

    ValueStack vs=(ValueStack)request.getAttribute("struts.valueStack");
    String name=(String)vs.findValue("Action中的任何變量");
      

  14.   

    其实可以这样取得fielderror中的错误信息:
       ${FieldErrors.name[0]} 其中name为你对应的字段
      

  15.   

    <s:property value=" #{FieldErrors.name[0]} "/>
    name对应的字段。