[Tapestry5] tapestry5.0中 页面跳转

longzhu007 2009-08-05

今天刚刚学习tapestry 做了一个小例子 项目的大致结构如下

src.example.MyTapestry 下面有Start.tml 和Start.java

然后在src.example.MyTapestry.test 下面有 TestPage.tml和TestPage.java文件

 

在Start.tml中放置一个pagelink

<t:pagelink page="test/Page" style="color:red">login</t:pagelink>希望页面转到TestPage.tml

但是无论我怎么设置page运行时都显示路径不对 要不就出错 但是如果我把TestPage相关的文件转到他们同一目录下就没有问题

 

web.xml文件中是这样配置的

<context-param>
  <param-name>tapestry.app-package</param-name>
  <param-value>example.MyTapestry</param-value>
 </context-param>

 

难道typestry5.0 设置package后就只能在默认的pages文件夹下面放所有的页面文件?想想应该不会吧。

不知道大家有没有这个问题 希望指点一下

fantify 2009-08-05
如果是采用maven2的结构,java页面类应该在src/main/java/example/MyTapestry/pages/包下,所以你的TestPage.java应该在src/main/java/example/MyTapestry/pages/test/下,而TestPage.tml可以在src/main/webapp/test下,也可以在src/main/java/example/MyTapestry/pages/test/下,这样应该就没问题了
longzhu007 2009-08-06

但是如果我用tapestry一定要采用maven2结构的话,那它本身就欠缺灵活性呢?
我的Start.tml放在src/example/MyTapestry/pages目录下
TestPage.tml放在src/example/MyTapestry/pages/test目录下
难道就没有方法直接从start.tml直接跳转到TestPage.tml页面吗?
或者我如果想直接访问TestPage.tml页面如何访问呢?
fantify 2009-08-06
longzhu007 写道

但是如果我用tapestry一定要采用maven2结构的话,那它本身就欠缺灵活性呢?
我的Start.tml放在src/example/MyTapestry/pages目录下
TestPage.tml放在src/example/MyTapestry/pages/test目录下
难道就没有方法直接从start.tml直接跳转到TestPage.tml页面吗?
或者我如果想直接访问TestPage.tml页面如何访问呢?


即使不采用maven2结构,tml模板文件放在java包下是可以的,当然同样也可以放在WEB-INF同级目录下,这样start.tml跟WEB-INF一起,建立一个WEB-INF同级目录test,把TestPage.tml放在这个目录。

在start.tml里,跳转到testpage就跟你之前写法没什么区别,<a t:type="pagelink" page="test/testpage">xxx</a>,当然我写法可能跟你不一样,个人喜好而已。建议写全testpage因为重构时候可能会修改名字等。
longzhu007 2009-08-06

刚刚我又重新做了一个测试
重新做了一个文件
src/example/MyTapestry/pages/demo/DemoPage.java

测试直接访问demo/page 可以顺利访问到该页面
但是奇怪的是如果我把包名改成test 页面文件改成TestPage.java后
再访问test/page就显示找不着该页面

 

难道pages下面的子包不允许为test?

呵呵 我居然会碰到这种小概率事件。这算不算该框架的一个小bug呢?

 

longzhu007 2009-08-06
还有一点
pagelink 中<a t:type="pagelink" page="test/testpage">xxx</a>
page无论是写成test/testpage 还是test/page都是访问不到的
当你写其他不存在的页面类时 它也会提示你能够访问到的那些page

其中虽然也包含test/page和test/testpage 但是如果你改成这些的时候也同样是访问不到的
也就是说程序可以检测到test目录下的页面类 但是直接通过url是访问不到的
fantify 2009-08-06
我用T5.1测试你的例子没有问题,tml放在src下还是web-inf都没问题,5.0没环境所以不能测
longzhu007 2009-08-06

我也是用的T5.1
测试好几遍了就是不能访问test包下面的页面

我用的是MyEclips 6.0  Tomcat6.x

 这个地方没有找到添加附件的东东

要不你把你测试的项目发到我的邮箱 gjsong404@163.com

或者我把我写的发到你的邮箱也可以的

谢谢了

fantify 2009-08-06
我刚刚是在我正在做的项目里简单测试的,代码文件比较多不太好看,还是你发到我ningdhcn@gmail.com吧

忘了说了,我测试是采用maven2结构和jetty的,没测tomcat
Global site tag (gtag.js) - Google Analytics