Tapestry 学习笔记

[color=red]一:乱码问题,修改其他配置前注意一定要在 .application文件中加上[/color]
<meta key="org.apache.tapestry.messages-encoding" value="UTF-8" /> 
<meta key="org.apache.tapestry.output-encoding" value="UTF-8" />
<meta key="org.apache.tapestry.template-encoding" value="UTF8" />


[color=red]二:Button 响应 DirectLink ,ExternalLink..URL[/color]
1.DirectLink:
  app?component=dlink&page=Home&service=direct&session=T&sp=Sdirectlink

session=T:表明是否stateful,告知service在响应请求的时候是否需要检验用户session.

2.ExternalLink:
  app?page=Home&service=external&sp=Sexternallink


[color=red]三:Exception:.....:Could not find a strategy instance for class...[/color]

纠结一上午的问题,最终发现勒问题所在,结果很意外。
之前的代码:

<table width="400" border="1">
<form jwcid="@Form">
<tr jwcid="@For" source="ognl:studentlist" value="ognl:student" element="tr" >
<td align="center">
<span jwcid="stuName@TextField" value="ognl:student.stuName" size="20">学生姓名</span>
</td>
<td align="center">
<span jwcid="stuAge@TextField" value="ognl:student.stuAge" size="20">学生年龄</span>
</td>
<td align="center">
<span jwcid="stuSex@TextField" value="ognl:student.stuSex" size="20">学生性别</span>
</td>
</tr>
</form>
<span jwcid="@Insert" value="ognl:studentlist.size"></span>
</table>


For组件遍历集合,为TextField组件赋值.因为TextField必须与Form组件同时存在,所以最外层 加有jwcid="@Form".这样做的结果就是 以上的Exception..
最终我发现是 Student 类没有实现Serializable接口 序列化,实现接口后页面正常显示。我正纳闷,记得以前不实现序列话程序也能正常启动!
于是将以上TextField组件 换 为 Insert组件.依然是相同的Exception.但是当在把form组建也删除时 页面这时正常显示。

让人的感觉是这样的,form表单内为组件赋值,载体对象的实体类一定得序列化。否则可以省去。也许这并不算是结论吧,虽然不懂底层是个什么实现原理,起码在遇见此类情况知道如何解决勒。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值