点集贵州电脑网
 
 
 梦想之源 ›› 灌水专区 ›› 一个hidden错误 版主:
灌水专区
新建论坛
申请免费TS
1 / 1 页
<< 1 >>
跳转
 主题:一个hidden错误
 
 lele
发表时间:[2007-11-12 17:38:10] [向作者发站内短信] [复制链接告诉朋友]
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>BrowseVieW ResMonitor1.0</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style/style.css" type="text/css" />
  <script type="text/javascript" src='dwr/interface/status.js'></script>
  <script type='text/javascript' src='dwr/engine.js'></script>
  <script type='text/javascript' src='dwr/util.js'></script>
  <script>
     var validatepassword=false;
     var comparepassword=false;
     var newisnull=false;
     var flag=false;
 
  
     function gotovalidate(inputpassword)
           {                        
              if(""==inputpassword)
              {
              var pd=document.getElementById("passwd");  
              pd.innerHTML="<img src='pub/pic/false.gif'/>原密码不能为空";
              return;
              }                  
              //这里得到的pwd是从hidden取出的,带有对象标志S         
              status.validatePassword(document.getElementById("userpassword").value,inputpassword,validatex);         
           }
         
     function validatex(data)
           {      
           var pe=document.getElementById("passwd");                       
           if(data==true)
           {                     
            pe.innerHTML="<img src='pub/pic/true.gif'/>密码验证成功";
            validatepassword=true;           
            }         
           else
           {                
            pe.innerHTML="<img src='pub/pic/false.gif'/>密码验证失败,请重新输入";
           
           }
           } 
     function isnull(newpassword)
           {     
              var pf=document.getElementById("newwd");                    
              if(""==newpassword)
              {
              
              pf.innerHTML="<img src='pub/pic/false.gif'/>新密码不能为空";
          
              } 
              else
              {
              pf.innerHTML="<img src='pub/pic/true.gif'/>新密码验证成功";
              newisnull=true;          
              }    
           }  
 function compare() 
        {
           var pc=document.getElementById("compare");       
     if(document.getElementById("newpwd").value!=document.getElementById("repwd").value)
     {
     pc.innerHTML="<img src='pub/pic/false.gif'/>新输入密码与确认密码不一致";
     }
        if(document.getElementById("newpwd").value==document.getElementById("repwd").value){
        pc.innerHTML="<img src='pub/pic/true.gif'/>新输入密码与确认密码一致";
     comparepassword=true;
     }
   
        } 
    function onc()
           {   
         
           document.getElementById("uuid").value=document.getElementById("uid").innerText;
           document.getElementById("pwd").value=document.getElementById("newpwd").value;
           return true; 
          
           }

</script>

</head>
<body>

<div id="container">

<span jwcid="@Head"/>

<span jwcid="Privilege"/>
<div id="content">
 <div id="position">您现在的位置:BrowseView >> <a href="#">管理</a>>>用户管理>>修改用户</div>
 <div id="innerContent">
 <div class="story">
 <table border="0" cellpadding="0" cellspacing="0" class="cTable">
   <tr>
  <td class="contentTableLeft"></td>
  <td class="contentTable">
  请输入您要修改的用户信息,<font color="red">*</font>部分为必填项
     <form  jwcid="updateUser@Form">
       <span id=userpassword jwcid="userpassword"/>
       <span jwcid="device"/>     
    <table cellspacing="0" cellpadding="0" class="sTRD1" id=user width="20%">
        <tr>
                 <td align="left">用户id</td><td id=uid align="left"><span  jwcid="id"/></td>
                 </tr>  
                 <tr>
                 <td align="left">用户名称</td><td align="left"><span jwcid="name"/></td>
                 </tr>
                 <tr>
                 <td align="left" width="10%">原密码<font color="red">*</font></td><td align="left" width="10%"><input id=pwd type="password" jwcid="password" onblur='gotovalidate(this.value);'/><span id=passwd align="left" width="20%"></span></td>
                 </tr>   
                 <tr>
                 <td align="left" width="10%">新密码<font color="red">*</font></td><td align="left" width="10%"><input  id=newpwd type="password" jwcid="newpassword"/><span id=newwd align="left" width="20%"></span></td>
                 </tr> 
                 <tr>
                 <td align="left" width="10%">确认密码<font color="red">*</font></td><td align="left" width="10%"><input id=repwd  type="password" jwcid="repassword" onblur='compare()'/><span id=compare align="left" width="20%"></span></td>
                 </tr>
                 <tr><td><span id=uuid jwcid="userid"/></td></tr>
                                         
    </table>
    <input type="submit" value="修改用户密码"  jwcid="management_updateuser_submit" onclick="return onc();"/>
        </form>  
  </td>
  <td class="contentTableRight"></td>
   </tr>
 </table>
 </div>  

  
<span jwcid="@Foot"/>

</div>
</div>
</div>
</body>

 

 

 

</html>
这个是页面代码


 楼主更多新贴 :  
灌水专区jfreechart图形上的链接
灌水专区itemselection的问题
灌水专区ognl:devicegroup.id
灌水专区foreach的问题
  楼1  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 17:38:40] [向作者发站内短信] [复制链接告诉朋友]

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE page-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<page-specification class="com.longcredit.KEye.app.business.SingleObjPage">
    <component id="Privilege" type="Privilege">
        <binding name="pageName" value="'management'"/>
    </component>    
 
    <component id="name" type="TextField">
          <binding name="value" value="ognl:po.name"/>
    </component>
            
    <component id="password" type="TextField">
          <binding name="value" value="ognl:po.password"/>
          <binding name="hidden" value="true"/>
    </component>
           
    <component id="repassword" type="TextField">
          <binding name="value" value="ognl:po.repassword"/>
          <binding name="hidden" value="true"/>         
    </component>
   
    <component id="newpassword" type="TextField">
          <binding name="value" value="ognl:po.newpassword"/>
          <binding name="hidden" value="true"/>         
    </component> 
  
    <component id="device" type="Hidden">
          <binding name="value" value="ognl:po"/>
    </component>
     
    <component id="management_updateuser_submit" type="Submit">
        <binding name="listener" value="listener:updateOrAdd"/>
        <binding name="parameters" value='{"action=modifyPassword&amp;","com.longcredit.KEye.app.business.PO.BasePO","updateDeviceSuccess","updateDeviceFail"}'/>
    </component>
   
    <component id="id" type="Insert">
          <binding name="value" value="ognl:userid"/>
    </component>
    <component id="uid" type="Hidden">
          <binding name="value" value="ognl:userid"/>
    </component>  
    <component id="userid" type="Hidden">
          <binding name="value" value="ognl:po.userid"/>
    </component>

    <component id="userpassword" type="Hidden">
          <binding name="value" value="ognl:userPassword"/>
    </component>        
</page-specification>
这是,page

  楼2  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 17:39:01] [向作者发站内短信] [复制链接告诉朋友]
org.apache.tapestry.BindingException
Unable to update OGNL expression '<parsed OGNL expression>' of $SingleObjPage_13@1b9a538[UpdatePassowrd] to admin: $SingleObjPage_13.userPassword
binding: ExpressionBinding[UpdatePassowrd userPassword]
location: context:/management/UpdatePassowrd.page, line 49, column 60
44 <component id="userid" type="Hidden">
45 <binding name="value" value="ognl:po.userid"/>
46 </component>
47  
48 <component id="userpassword" type="Hidden">
49 <binding name="value" value="ognl:userPassword"/>
50 </component>
51 </page-specification>
 
org.apache.hivemind.ApplicationRuntimeException
Unable to update OGNL expression '<parsed OGNL expression>' of $SingleObjPage_13@1b9a538[UpdatePassowrd] to admin: $SingleObjPage_13.userPassword
component: $SingleObjPage_13@1b9a538[UpdatePassowrd]
location: context:/management/UpdatePassowrd.page, line 5, column 76
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE page-specification PUBLIC
3 "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
4 "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
5 <page-specification class="com.longcredit.KEye.app.business.SingleObjPage">
6 <component id="Privilege" type="Privilege">
7 <binding name="pageName" value="'management'"/>
8 </component>
9  
10 <component id="name" type="TextField">
 
ognl.NoSuchPropertyException
$SingleObjPage_13.userPassword
name: userPassword
target: $SingleObjPage_13@1b9a538[UpdatePassowrd]
Stack Trace:
  • ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:133)
  • ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1629)
  • ognl.ASTProperty.setValueBody(ASTProperty.java:105)
  • ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
  • ognl.SimpleNode.setValue(SimpleNode.java:246)
  • ognl.Ognl.setValue(Ognl.java:476)
  • org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.writeCompiled(ExpressionEvaluatorImpl.java:121)
  • $ExpressionEvaluator_116333b454f.writeCompiled($ExpressionEvaluator_116333b454f.java)
  • org.apache.tapestry.binding.ExpressionBinding.setObject(ExpressionBinding.java:172)
  • $Hidden_14.setValue($Hidden_14.java)
  • org.apache.tapestry.form.Hidden.rewindFormComponent(Hidden.java:97)
  • org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:115)
  • org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
  • org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:434)
  • org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:564)
  • org.apache.tapestry.form.Form.renderComponent(Form.java:226)
  • org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
  • org.apache.tapestry.form.Form.rewind(Form.java:327)
  • org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:439)
  • org.apache.tapestry.form.Form.trigger(Form.java:338)
  • org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146)
  • org.apache.tapestry.engine.DirectService.service(DirectService.java:132)
  • $IEngineService_116333b44c4.service($IEngineService_116333b44c4.java)
  • org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:66)
  • org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:248)
  • org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
  • $WebRequestServicer_116333b4496.service($WebRequestServicer_116333b4496.java)
  • $WebRequestServicer_116333b4492.service($WebRequestServicer_116333b4492.java)
  • org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
  • $ServletRequestServicer_116333b4482.service($ServletRequestServicer_116333b4482.java)
  • org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
  • $ServletRequestServicerFilter_116333b447e.service($ServletRequestServicerFilter_116333b447e.java)
  • $ServletRequestServicer_116333b4484.service($ServletRequestServicer_116333b4484.java)
  • org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
  • $ServletRequestServicerFilter_116333b447c.service($ServletRequestServicerFilter_116333b447c.java)
  • $ServletRequestServicer_116333b4484.service($ServletRequestServicer_116333b4484.java)
  • org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
  • $ServletRequestServicerFilter_116333b4480.service($ServletRequestServicerFilter_116333b4480.java)
  • $ServletRequestServicer_116333b4484.service($ServletRequestServicer_116333b4484.java)
  • $ServletRequestServicer_116333b4476.service($ServletRequestServicer_116333b4476.java)
  • org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
  • org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:168)
  • javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
  • javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
  • org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
  • org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
  • org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
  • org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  • org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  • org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
  • org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
  • org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  • org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  • org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
  • org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  • org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
  • org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
  • org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  • org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  • org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
  • org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
  • org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
  • org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
  • org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
  • org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
  • org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
  • org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
  • java.lang.Thread.run(Thread.java:595)
  楼3  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 17:39:14] [向作者发站内短信] [复制链接告诉朋友]

请帮忙看看

  楼4  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 17:43:39] [向作者发站内短信] [复制链接告诉朋友]

在原密码 这里 可以验证通过 就是因为要在这里验证数据库中的密码和输入的密码是不是一致 !做法是 先从session中取出密码,在,page中利用    <component id="userpassword" type="Hidden">
          <binding name="value" value="ognl:userPassword"/>
    </component> 得到密码

然后 放在hidden 在前台页面 通过JS传递,通过DWR调用业务实现判断,都能顺利通过的

     function gotovalidate(inputpassword)
           {                        
              if(""==inputpassword)
              {
              var pd=document.getElementById("passwd");  
              pd.innerHTML="<img src='pub/pic/false.gif'/>原密码不能为空";
              return;
              }                  
              //这里得到的pwd是从hidden取出的,带有对象标志S         
              status.validatePassword(document.getElementById("userpassword").value,inputpassword,validatex);         
           }
           我只修改了这个函数而已

 

 

  楼5  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 17:44:15] [向作者发站内短信] [复制链接告诉朋友]

但是当提交的时候  就出现了上面的错误

  楼6  
等 级:下士
经 验:1683
性 别:帅哥
文 章:496
精 华:2
 干煸四季豆
发表时间:[2007-11-12 17:49:39] [向作者发站内短信] [复制链接告诉朋友]

ognl.NoSuchPropertyException
$SingleObjPage_13.userPassword
name: userPassword
target: $SingleObjPage_13@1b9a538[UpdatePassowrd]

错误报告中说,你的SingleObjPage类中,没有userPassword这个字段。

另外说一句,不要在HTML中加如下声明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Tapestry有些JS不支持。

  楼7  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 18:20:21] [向作者发站内短信] [复制链接告诉朋友]

userPassword //得到用户登陆的id
 public String getUserid(){
  
  return getPrivilegeResult().getUserid();
 }
    //得到用户登陆的密码
 public String getUserPassword(){
  
  return getPrivilegeResult().getPassword();
 }

我在这里定义了啊

  楼8  
等 级:列兵
经 验:498
性 别:帅哥
文 章:138
精 华:0
 lele
发表时间:[2007-11-12 18:32:15] [向作者发站内短信] [复制链接告诉朋友]

加入了userPassword字段确实就没问题了 但是我奇怪的是:

我同样的方法,也用了public String getUserid(){
  
  return getPrivilegeResult().getUserid();
 }
这个方法,然而,SimpleObjectPage类也没有定义

userid属性啊

为什么就没出错误呢

  楼9