用@Hidden在页面上持久colorList 

解决方案 »

  1.   

    有没有不用Hidden的方法?我的真实的环境中使用@Hidden后,生成的代码太多了:<input type="hidden" name="$Hidden" value="OH4sIAAAAAAAAAJVTQWsTQRR-3SQkLSJtLT2IBbEQbcWdmFhqiZdGKEb2IAaLF4mzyZCsTXY3M5NklSARW6lQoYIgPRQvhRKsXrxo9S7exKM3wbXk0B8gXpzZbdLUguLCzr55-73vfe_Nm61dCDEKx-7gGlar3Cips5Tiu5rBuPPgy9jaR7wegL40BJlxjzg2ACj1oFgHRNCJnFVWTatumHk1b5WxYaqpKstwzA3LHBv9PHLp18qoApE0hLM_1h-6zQ9piBQxK1628kSDQNbIcxjWZGpUwmYBZTg1zEJSg4Gsu_Sm_ey1--p5Be5DwPOsbLvLj9zVJ3uecHbn5dr-NmISh0vZHAZ9SlkNkh5BGLYpkaYEBx0K4z3S60RXGadVzlQdM6KmxDJn0fK15NehuVb0sQIhQaDj3MINWtrLdlSvMs0wSYbQmpEjHCY1wYh8RuQ3AzH_J0odwAo1Q3q3TV2Cc38nOAiXFVFSqRJZ7mmvXMdDlwhHRc5tdEUsGd9x3QeKmAglzLZMJtKd-WeQj0yKZk1YtKBiG-eKpNOoGi4Zecwtqs53LNmym32fmt8q0agCihgZGxfEMQ92sYKzWuKMA9IEI_IZkSi7LDKhLgzN_xEgNYwf1oBzsiPqrPeR2Z-ePT5Z-7n0TgHwJhVs75FWU7wcTsZnpgnWMYnNXJzW41OJ2Hnfwol4LDaVyHEINdyNVoNDf7u15a4uutuLvbYY-pH9myIOdYHk5Vgdmcjcunp7-VRAZvbuBzhMjspw70b5T02JC0KTuCL9je9vmx1d7sZm-0Vr5_1mr304V2fj_AY0TdaE4QMAAA.."/>
    <input type="hidden" name="$Hidden$0" value="OH4sIAAAAAAAAAJVTQWsTQRR-3SQkFpG2lh7EgliItuJOmhpqiZdGKEb2IAaLF4mzyZCsTXY3M7PJKkVSpVIxQgVBihS8FlsPetHiXbyJR29CV9uDP0C8OLPbpKkFxYWdffP2e9_73ps36z8gwigcvYXrWHW4UVGnKcW3NYNxd-Hz8MoHvBqCniyEmXGHuDYAKI2wWHtF0PGCVVVNq2GYRbVoVbFhqhmH5TjmhmUOD30avPCrNaRALAvR_LfV-17zfRZiZczKF60i0SCUN4ocBjSZGlWwWUI5Tg2zlNagN-8tvtl5-srbeFaDuxDyPa1Nb-mBt_x41xPNf3-5sreNmcTlUjaHvoBSVoOkRxBGbUqkKcFhl8JIl_QG0VXGqcOZqmNG1IxYZixavZL-0j-zFn-oQEQQ6Lgwd41WdrMd0R2mGSbJEVo3CoTDmCYYUcCIgmYgFvxEmX1YoaZf77SpQ3D27wT74bIiSmoOkeWe8st1fXSFcFTm3EaXxJILHFcDoIiJUcJsy2Qi3el_BgXItGjWqEVLKrZxoUzajarjilHE3KLqbNuSLbve87H5tRaPK6CIkbFxSRxzXwcrOJ0KZxyQJhhRwIhE2VWRCXVgaPaPAKlh5KAGXJAdUaf9j8z-5MyxsfrPxXcKgD-pYPuPtJri5XAiOTVJsI5JYur8pJ5MTSTGAwtPpJKJ1LlxDpH5rc3WPIdDW28f7ayte683um0x9IN7N0Uc6hwpyrE6PJq7cfnm0smQzOzfD3CZHJWB7o3yv5oKQlOyS9N2c8Fbfu69uNdtH8zT3ri_AR_GRn3dAwAA"/>
      

  2.   

    在Confirm.java中装colorList的setter,getter设为abstract,并去掉private List colorList;在Confirm.page中设  
      <property-specification name="colorList"
            type="java.util.List"
            persistent="yes"/>可去掉Hidden :)
      

  3.   

    tapestry仍然是web程序,那么保存数据的方式也只可能是传统的用Hidden保存,用session保存,或用数据库保存。我想你肯定不想每次读数据库,所以只可能有前面两种方式了。前面都有介绍,自己选一个用吧
      

  4.   

    to superman421(38度的雪) :在Confirm.java中装colorList的setter,getter设为abstract,并去掉private List colorList;在Confirm.page中设  
      <property-specification name="colorList"
            type="java.util.List"
            persistent="yes"/>可去掉Hidden :)这样就不需要hidden,也不需要手动操作session了。问下,用了
     persistent="yes"后,它把这个colorList保存到哪里了?
      

  5.   

    哈哈,这个就是tapestry帮你保存在session里的。
    不要因为框架完全抛弃WEB的思维方式。
    虽然用TAPESTRY之后要改变很多编程的思路,但是基本原则是不能边的。
    特别是到高级应用的时候所面对的就是WEB的传统模式
      

  6.   

    to superman421(38度的雪):
    那么这个数据是不是一直在session中,即使以后不再访问这个页面了?
      

  7.   

    是的,如果你要清掉设为NULL就可以了