在ssh框架下,action中声明了对象,并且有get,set方法,前台使用${对象.属性}的时候却获取不到信息,这是怎么搞的啊?
下面是action里的内容
private MNoKind mNoKind ;
private DNoDesc dNoDesc ;
public MNoKind getmNoKind() {
return mNoKind;
} public void setmNoKind(MNoKind mNoKind) {
this.mNoKind = mNoKind;
}
public String noHeadDetail(){
mNoKind=mNoKindService.findById(id);
return "noHeadDetail";
}jsp页面中的展示<input type="text" id="mNoKind.noKindName" name="mNoKind.noKindName" readonly value="${mNoKind.noKindName}"style="width: 150" readonly />

解决方案 »

  1.   

    你那个getmNoKind明显不符合javabean的规范
    应该是getMNoKind
      

  2.   

    <input type="text" id="noKindName" name="mNoKind.noKindName" />
    不用写value的
    id也换
      

  3.   

    很简单,你那个mNoKind ,dNoDesc 对象没有赋予get方法,当然无法从action取出对象,更别说JSP了
      

  4.   

    mNoKind 你这个对象放在request里面了么?
      

  5.   

    又有个新问题,我前台输入的信息,action里又获取不到了,该怎么办?
    后台的java
    private MNoKind mNoKind ;
    private DNoDesc dNoDesc ;

    public void setMNoKind(MNoKind mNoKind) {
    this.mNoKind = mNoKind;
    } public MNoKind getMNoKind() {
    return mNoKind;
    }

    public void setDNoDesc(DNoDesc dNoDesc) {
    this.dNoDesc = dNoDesc;
    }

    public DNoDesc getDNoDesc() {
    return dNoDesc;
    } public String noHeadAdd(){
    System.out.println("111111111111111111111"+mNoKind.getNoKindName());
    System.out.println("111111111111111111111"+dNoDesc.getNoHead());

    return "noHeadAdd";
    }从前台获取后,对象都是null前台jsp页面
    <form id="noHeadAddForm" name="noHeadAddForm" method="post" style="margin: 10;text-align: center;">
    <tr>
    <td class="l-table-center">
    信息1: 
    </td>
    <td>
    <input type="text" id="dNoDesc.noHead" name="dNoDesc.noHead" style="width: 150" validType="length[7,7]" 
    class="easyui-validatebox" required="true" />
    </td>
    </tr>
    <tr><td></td></tr>
    <tr>
    <td class="l-table-center">
    信息2: 
    </td>
    <td>
    <input type="text" id="mNoKind.noKindName" name="mNoKind.noKindName" readonly value="${mNoKind.noKindName}"style="width: 150" readonly />
    </td>
    </tr>
    <tr>
    <td align="center">
    <input type="hidden" id="dNoDesc.noKind" name="dNoDesc.noKind" id="dNoDesc.noKind" value="${mNoKind.noKind}" />
    </td>
    </tr>提交时在js中处理的 var r = $('#noHeadAddForm').form('validate');
    if(!r) {
    return false;
    }
    $.post("<%=basePath%>noHead/noHead_noHeadAdd.action",$("#noHeadAddForm").serializeArray(),function(data){
    $('#MyPopWindow').window('close');
    $('#dataGrid').datagrid('reload');  
    $.messager.alert('提示','提交成功','info');
    });
    我跟踪的时候发现有参数dNoDesc.noHead=1111111&dNoDesc.noKind=1&mNoKind.noKindName=类型一
    但是action里对应的确实null,不知道是哪出了问题。求大牛~
      

  6.   

    把前台想要的东西放request里了吗?
    request.setAttribute("noKindName", xxx);//xxx为后台得到的noKindName对象,不能为null
      

  7.   

    是不是你jsp页面禁用了EL表达式。页面头部<%%>里可设置。
      

  8.   

    private MNoKind mNoKind ;改为public的
    public String noHeadDetail(){
            mNoKind=mNoKindService.findById(id);
            request.setAttribute("dNoDesc",mNoKind );
            return "noHeadDetail";
        }
    另外name属性的名字要和bean里面的一样(dNoDesc.bean.name)
      

  9.   

    action里面定义的参数要为public
      

  10.   

    把前台想要的东西放request里了吗?
    request.setAttribute("noKindName", xxx);//xxx为后台得到的noKindName对象,不能为null
      

  11.   

    <input type="text" id="mNoKind.noKindName" name="mNoKind.noKindName" readonly value="${mNoKind.noKindName}"style="width: 150" readonly />我狠好奇这种写法,readonly value="${mNoKind.noKindName}"style="width: 150" readonly
      

  12.   


    我也很好奇, 为什么加个readyonly