tapestry问题,内详,请进

dddeee 2006-02-23 04:37:16
遇到一个小问题,两天没搞定,请大家帮忙看看!

有两个页面,Home.html和Confirm.html。点击Home上的一个链接后,动态生成一个List,传到Confirm,生成一组radio。选择其中一个,提交后。为什么得到的是null。该怎么改?

代码如下:

Home.html

<a href=# jwcid="@ActionLink" listener="ognl:listeners.submit">Confirm</a>

Home.java

// 点击后生成一个list,传给Confirm
public void submit(IRequestCycle cycle) {
List list = new LinkedList();
list.add("RED");
list.add("GREEN");
list.add("BLUE");
Confirm confirmPage = (Confirm) cycle.getPage("Confirm");
confirmPage.setColorList(list);
cycle.activate(confirmPage);

}

Confirm.html
// 从Home取得list后,显示正常。但是提交后,得到的是null
<form jwcid="@Form">
<span jwcid="@RadioGroup" selected="ognl:color">
<span jwcid="@Foreach" source="ognl:colorList" value="ognl:item" >
<input type="radio" jwcid="@Radio" value="ognl:item"/>
<span jwcid="@Insert" value="ognl:item" /><br>
</span>
</span>
<input type="submit" jwcid="@Submit" listener="ognl:listeners.submit" />
</form>

Confirm.page

<property-specification name="item" type="java.lang.String"/>
<property-specification name="color" type="java.lang.String"/>

Confirm.java

public abstract class Confirm extends BasePage {

private List colorList;

public abstract String getColor();

protected void initialize() {
super.initialize();
colorList = null;
}

public List getColorList() {
return colorList;
}

public void setColorList(List colorList) {
this.colorList = colorList;
}

public void submit(IRequestCycle cycle) {
String color = getColor();
System.out.println(color);
}

}
...全文
207 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
superman421 2006-03-04
  • 打赏
  • 举报
回复
是的,如果你要清掉设为NULL就可以了
dddeee 2006-03-04
  • 打赏
  • 举报
回复
to superman421(38度的雪):
那么这个数据是不是一直在session中,即使以后不再访问这个页面了?
superman421 2006-03-04
  • 打赏
  • 举报
回复
哈哈,这个就是tapestry帮你保存在session里的。
不要因为框架完全抛弃WEB的思维方式。
虽然用TAPESTRY之后要改变很多编程的思路,但是基本原则是不能边的。
特别是到高级应用的时候所面对的就是WEB的传统模式
dddeee 2006-03-03
  • 打赏
  • 举报
回复
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保存到哪里了?
superman421 2006-02-28
  • 打赏
  • 举报
回复
tapestry仍然是web程序,那么保存数据的方式也只可能是传统的用Hidden保存,用session保存,或用数据库保存。我想你肯定不想每次读数据库,所以只可能有前面两种方式了。前面都有介绍,自己选一个用吧
dddeee 2006-02-26
  • 打赏
  • 举报
回复
在Confirm.java中装colorList的setter,getter设为abstract,并去掉private List colorList;

在Confirm.page中设
<property-specification name="colorList"
type="java.util.List"
persistent="yes"/>

可去掉Hidden :)
dddeee 2006-02-23
  • 打赏
  • 举报
回复
有没有不用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"/>
sunshinekyo 2006-02-23
  • 打赏
  • 举报
回复
用@Hidden在页面上持久colorList

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧