`
yefeishan
  • 浏览: 111480 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

从T5 Build web appliction里面学到的

阅读更多

T5的优点:

  1. 以声明的方式处理按钮动作
  2. 除去代码复制
  3. 定义组件容易
  4. ajax集成
  5. 验证
  6. 国际化
  7. IOC
  8. spring支持
  9. hibernate支持

事件处理器返回的类型

  1. nothing 当前页面处理request
  2. String logic name of page
  3. class java class of page
  4. Page IPage 接口
  5. Stream StreamResponse可以生成pdf或者excel文件等

页面池,不用用户使用同一个页面实例,所以在页面间传递参数时要加@Persist标注进行保存,具体会存放在session里面

这样有一个问题,如果用户太多,而这些数据都存放在server端的话,会占用大量的空间,所以在可以不用这存储的时候就不要用,也可以考虑用值传递的方式,

@InjectPage Another another

.

.

another.set×××();

在调用这个方法的时候会实例化Another这个类,会把参数传递过去,而Another在接收的时候用onPassivate()方法,然后跳转,另一个实例调用onActivate()方法实现把数据返回到客户端。

实际在调用的过程中,会去检查Another这个实例是否有onPassivate()这个方法,如果有就进行参数操作,然后返回到Pool里面,如果没有这个方法的话,直接返回到pool里面。

用户在请求的时候,就直接到pool里面去取,再通过onActivate()方法返回值到客户端。

 

定义组件的方式:

  1. 隐式的:<t:textfield t:value="***"/>,这样的话,在dreamweaver里面是看不到的
  2. 显示的:<a href="#" t:type="pagelink" t:id="linkid" t:page="Another"/>.这样的话在静态页面里面能看到

注意在调用的时候,在java里面,

@component component={"page=Another"}

private PageLink linkid

这里的"linkid"名称一定要跟前面定义的那个id的名称一样

 

 

全局数据(Application state object   ASO)同样存在session里面,如果session过期,当再次请求时,会再次创建,但始终保持一个实例,有且仅有一个实例

@ApplicateState

private User user;

当用户第一次请求这个对象时,就会创建User对象的实例,如果后面调用这个对象实例,返回的都是同一个实例,也就是说在任何地方所作的修改都会反应在这个对象里面。后面即使再次声明,返回的都是同一个对象如:

@ApplicateState

private User myuser;

实际上在调用的时候,myuser跟上面定义的user是同一个对象的。

 

 

<t:if t:test="userExist">

<p> The name is :${user.firstname}</p>

</t:if>

在上面片断中,"userExist"是全局变量,检查user是否存在。它有命名约定,user+Exist两部分组成。而在java文件中不需要声明这样一个变量的。它会自动去检查全局变量里面是否存在user这个对象,是否初始化了。但是在这个时候它是不会去初始化这个user对象的,也就是说他只是检查,不会去作实例化的操作。

 

数据源最好以service的方式存在而不是以ASO的方式存在,因为他会占用session空间

 

我们在查看详情的时候,一般用ActionLink,它在当前页面写事件处理方法,然后把得到的值传给详情页面,返回详情,此处详情页面需要设一个@Persist的变量来接收传递的值,这样不方便,可以用PageLink,把值传递过去,当前页面也不用写处理方法,详情页面要写一个onActivate(Long id)方法接收参数

 

Tapestry值处理方式,一是prop,二是literal

默认以prop方式,它会在page里面寻找get,set方法来得到值

而literal方式会列出后台跟的值把它当作字符串来处理

分享到:
评论

相关推荐

    tapestry5 build web application-alexander

    《Tapestry 5:构建Web应用程序》是关于Tapestry 5框架的一本权威指南。Tapestry 5是一个强大的Java Web应用框架,由Apache软件基金会开发并维护,它致力于提供一种更高效、更优雅的方式来构建动态、交互式的Web应用...

    mybatis-3.0.5.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    SQLite3的使用+API接口的调用

    SQLite3的使用+API接口的调用(c/c++、Qt)

    aws-java-sdk-s3-1.12.246.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    基于混沌-高斯变异-麻雀搜索算法的BP神经网络优化(CGSSA-BP)在电厂运行数据回归预测中的应用(含优化前后对比)MATLAB代码

    内容概要:本文介绍了如何使用混沌-高斯变异-麻雀搜索算法(CGSSA)优化BP神经网络来进行电力行业的回归预测。主要内容包括数据准备、BP神经网络构建、CGSSA优化过程、以及优化前后效果对比。通过MATLAB代码实现,展示了如何读取EXCEL数据并进行训练和测试,最终通过图表和误差指标对比优化前后的预测效果。 适用人群:适用于具有一定MATLAB编程基础和技术背景的研究人员、工程师,特别是从事电力数据分析和机器学习领域的专业人士。 使用场景及目标:① 对电厂运行数据进行精准回归预测,辅助电厂运维规划和能源分配优化;② 提供详细的代码实现和优化方法,帮助用户理解和应用CGSSA优化BP神经网络的技术。 其他说明:文中提供了完整的代码示例,包括主程序、数据划分、BP神经网络预测、CGSSA-BP神经网络预测和结果对比等功能模块。此外,还讨论了一些优化技巧和注意事项,如数据归一化、隐藏层节点选择等。

    第三方浏览器下载包.apk

    第三方浏览器下载包.apk

    嵌入式系统开发_ARM11架构_Linux操作系统_QT48开发环境_QTCreator工具_人脸识别算法_商业保密技术_QML界面开发_视频嵌入技术_跨平台移植_基于上海高校.zip

    嵌入式系统开发_ARM11架构_Linux操作系统_QT48开发环境_QTCreator工具_人脸识别算法_商业保密技术_QML界面开发_视频嵌入技术_跨平台移植_基于上海高校

    宠物领养救助系统 - Java课程设计/毕业设计项目 - SpringBoot+Vue+MySQL宠物领养平台

    宠物领养救助系统是基于SpringBoot+MyBatisPlus+Vue+MySQL开发的Java项目,适合作为Java课程设计、毕业设计或期末大作业。技术涵盖前后端开发,帮助初学者快速掌握Java全栈技能。采用IDEA开发,代码规范,易于二次扩展,是Java学习者的理想实战项目!

    winmm钢琴程序代码QZQ.txt

    winmm钢琴程序代码QZQ

    scratch少儿编程逻辑思维游戏源码-狗狗变形者.zip

    scratch少儿编程逻辑思维游戏源码-狗狗变形者.zip

    thymeleaf-2.0.8.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    基于回声状态网络(ESN)的数据分类预测算法实现与Matlab代码实践

    内容概要:本文详细介绍了基于回声状态网络(ESN)的数据分类预测方法及其Matlab实现。首先简述了ESN的基本概念,强调其作为特殊递归神经网络的特点,即储备池连接权值固定不变。接着逐步展示了从数据准备、ESN模型构建、训练到预测的具体步骤,包括参数设置、状态更新规则、输出层训练方法等。文中还探讨了各部分代码的作用及意义,并提供了调参建议,如谱半径、泄漏率等参数的选择依据。此外,作者分享了自己在实验过程中的一些经验和心得,指出ESN在处理时间序列分类任务方面的优势。 适合人群:对递归神经网络特别是ESN感兴趣的科研工作者、学生以及有一定编程基础并想深入了解ESN机制的研究人员。 使用场景及目标:适用于需要进行时间序列数据分析和分类的应用场合,如金融趋势预测、语音识别等领域。通过学习本文提供的完整流程,读者可以掌握如何利用ESN解决实际问题,并能够根据自身需求调整模型参数以获得更好的性能。 其他说明:文中不仅给出了完整的Matlab代码示例,而且针对每一环节进行了详细的解释,帮助读者更好地理解ESN的工作原理和技术细节。同时提醒读者注意某些关键参数的调节范围,以便于在实际项目中取得理想的效果。

    威纶通触摸屏一机多屏程序

    内容概要:本文深入介绍了威纶通触摸屏一机多屏程序及其与FX3U系列PLC和MODBUS通讯的集成应用。首先,文章阐述了系统的硬件架构,即一个FX3U系列PLC搭配四个MT6051ip触摸屏的工作原理。接着,详细解析了威纶通模板的特点,特别是梯形图的详尽注释,便于理解和维护。此外,文章还探讨了PLC与上位机的MODBUS通讯设置,包括波特率、数据位、停止位等参数的具体配置方法。最后,强调了该系统的学习意义和借鉴价值,适用于新手和资深工程师。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是那些希望深入了解PLC、触摸屏和MODBUS通讯的人群。 使用场景及目标:①帮助工程师快速掌握威纶通触摸屏的一机多屏配置;②提高PLC与触摸屏、上位机之间的通讯效率;③优化中小型企业生产线的监控系统,提升生产效率和稳定性。 其他说明:文中提供的实例和代码片段有助于读者更好地理解和实践相关技术,同时附带了一些实用的小技巧,如心跳检测和双看门狗设计,增强了系统的可靠性和容错能力。

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失.zip

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失

    Matlab蒙特卡洛模拟求解复杂模型可靠度近似解

    内容概要:本文详细介绍了蒙特卡洛方法在工程可靠度计算中的应用,特别是在处理涉及多种概率分布参数的情况下。首先展示了基本的Matlab实现,如生成正态分布和极值分布的随机样本,并通过极限状态函数判断结构的安全性。接着讨论了处理相关变量的有效方法——拉丁超立方抽样,以及进一步提高计算效率的重要抽样法。此外,还探讨了并行计算和置信区间的计算,确保结果的准确性。最后强调了蒙特卡洛方法在解决复杂可靠度问题中的优越性和实用性。 适合人群:从事工程可靠度分析的研究人员和技术人员,以及对数值模拟感兴趣的工程师。 使用场景及目标:适用于需要评估结构或其他系统的可靠性的场合,尤其是在无法获得解析解的情况下。目标是提供一种简单有效的数值方法来估算失效概率和可靠度。 其他说明:文中提供了大量具体的Matlab代码示例,帮助读者更好地理解和应用蒙特卡洛方法。同时提醒使用者注意计算资源的合理分配,以平衡精度和效率。

    人力资源管理系统 - Java课程设计 - 毕业设计 - 期末大作业 - SpringBoot+Vue项目 - 初学者实战

    基于SpringBoot+MyBatisPlus+Vue+MySQL的人力资源管理系统,专为Java课程设计、毕业设计及期末大作业打造。采用主流技术栈(Idea开发),适合Java初学者快速上手,提供完整源码与文档,助力高效完成学习任务!

    Screenshot_2025-01-26-01-50-08-41.jpg

    Screenshot_2025-01-26-01-50-08-41.jpg

    基于FPGA的DDS多波形信号发生器:支持多种波形生成与仿真,采用Quarter与Modesim联合仿真,Verilog HDL编程实现

    内容概要:本文详细介绍了如何利用FPGA和Verilog HDL语言实现一个多功能DDS(直接数字频率合成)信号发生器。该发生器不仅可以生成常见的正弦波、方波、锯齿波和三角波,还可以实现2PSK、2ASK和AM调制。文章首先解释了DDS的基本原理,即通过相位累加器和查找表(LUT)生成波形。接着分别给出了各个波形的具体实现代码,并讨论了调制技术的实现方法。最后,文章提供了仿真的步骤以及一些实用的调试技巧,确保设计方案能够在实际硬件环境中正常工作。 适合人群:具备一定FPGA和Verilog编程基础的电子工程师、研究人员和技术爱好者。 使用场景及目标:适用于需要精确控制频率和波形的应用场合,如通信系统、音频设备、测试仪器等。目标是掌握DDS技术的工作原理及其在FPGA上的具体实现方法,同时提高对复杂数字系统的理解和设计能力。 其他说明:文中提供的代码片段可以直接用于实验环境,有助于快速搭建原型并进行验证。此外,作者还分享了一些优化建议和常见问题解决方案,使读者能够更好地应对实际项目中的挑战。

    34 andorid 源码北京公交线路查询

    34 andorid 源码北京公交线路查询

Global site tag (gtag.js) - Google Analytics