问题标签 [tapestry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Tapestry 4.1.2 中的国际化页面属性
我的 Tapestry 应用程序中的登录页面有一个属性,其中存储了用户输入的密码,然后将其与数据库中的值进行比较。如果用户输入的密码包含多字节字符,例如:
...检查 getPassword() 的返回值(相应属性的抽象方法)给出:
显然,这没有正确编码。然而,Firebug 报告该页面以 UTF-8 提供,因此大概表单提交请求也将以 UTF-8 编码。检查来自数据库的值会生成正确的字符串,因此这似乎不是操作系统或 IDE 编码问题。我没有在 .application 文件中覆盖 Tapestry 的默认值 org.apache.tapestry.output-encoding,Tapestry 4文档指出该属性的默认值是 UTF-8。
那么为什么 Tapestry 在设置属性时会出现编码问题呢?
相关代码如下:
登录.html
登录页面
登录.java
更新
@Jan Soltis:好吧,如果我检查来自数据库的值,它会显示正确的字符串,所以我的编辑器、操作系统和数据库似乎都正确地编码了值。我还检查了我的 .application 文件;它不包含 org.apache.tapestry.output-encoding 条目,并且 Tapestry 4文档指出此属性的默认值为 UTF-8。我已经更新了上面的描述以反映您的问题的答案。
@myself:找到解决方案。
java - 为应用程序中的单个 Tapestry 4 页面设置 ISO-8859-1 编码,否则完全是 UTF-8
我有一个 Tapestry 应用程序将其页面作为 UTF-8 提供服务。也就是说,服务器响应具有标题:
现在在这个应用程序中有一个页面应该使用 ISO-8859-1 编码。也就是说,服务器响应应该有这个头:
这该怎么做?我不想更改整个应用程序的默认编码。
基于谷歌搜索,我尝试了以下操作:
但是使用 @Meta 注释设置这些值或覆盖 getOutputEncoding 方法都不起作用。
我正在使用 Tapestry 4.0.2。
编辑:我最终使用带有子类 HttpServletResposeWrapper 的 Servlet 过滤器来执行此操作。包装器覆盖 setContentType() 以强制响应所需的编码。
java - 是否应该将 Tapestry 5 用于生产版本?
我们正在启动一个大型网络项目,主要是绿色领域。我喜欢用于 java/web 解决方案的 Tapestry 框架。我担心启动 Tapestry 5 项目,因为 T5 仍处于测试阶段。但是,如果我正确理解文档,T5 及更高版本将不支持 T4 开发。我的问题:我应该用 T5 为一家大公司开始一个大型项目吗?如果没有,随着即将发布的 T5,我应该完全忽略 T4 吗?
java - 如何在 Tapestry 中隐藏额外的组件跨度标签?
如果我使用 span 标签来呈现像 <span jwcid="@If" .../> 这样的组件,我的 HTML 会以一堆无用的 span 标签结束。大多数时候,没关系,但在某些情况下,它会干扰我的 CSS 或使页面无效。有没有办法告诉 Tapestry 处理标签,但不实际渲染它?
java - 有没有一种简单的方法可以将“选择”选项添加到 Tapestry PropertyModel 下拉列表中
我有一个用于性别的 Tapestry PropertyModel。现在下拉列表只显示男性和女性,因为这些是我模型中唯一的值。我想添加一个“选择一个选项”选项。有没有一种标准方法可以做到这一点,而不必为我的模型添加假值?我还希望它足够聪明,知道如果该字段是必需的,他们不能将其设置为“选择一个选项”。
browser - Tapestry 4:资产缓存控制?
我使用 Tapestry 4,每当我们推送一个更改任何资产(图像、样式表、JS 库)的版本时,我们都会遇到问题,因为用户的浏览器缓存中仍然有旧版本的资产。我想设置一些简单的方法来允许缓存,但在我们更新应用程序时强制下载新的资产。简单地完全禁止对资产进行缓存不是一个可接受的解决方案。
我看不到执行此操作的任何现有机制,但我认为可能有某种方法可以告诉 Tapestry 将内部版本号添加到 URL,如下所示:
http://www.test.com/path/to/the/asset/asset.jpg?12345
这样,每一个新的构建都会使它看起来像最终用户的不同资产。
Tapestry 是否提供了一种简单的方法来解决我不知道的缓存问题?如果不是,如何修改 Tapestry 生成的 URL?负责执行此操作的代码将如何获得内部版本号?(例如,我可以将内部版本号放入 Spring bean 中,但是新的 URL 构建机制将如何获取它?)
java - 如何将信息放入 Tapestry5 的输出流中?
如何将信息放入 Tapestry5 的输出流中?
当用户进入它时我需要一个页面打开一个对话框以保存或打开带有输出流信息的文件。
我写下一段代码:
公共类索引{
}
我希望结果只是“helloooooooo”但是(“helloooooooo”+我的html原始页面)
tapestry - 在 Tapestry5 中使用 JSCookMenu
我正在尝试使用 Tapestry4 将我的项目升级到 Tapestry5。我正在寻找一个在 Tapestry5 中使用 JSCookMenu 的组件。
java - 如何在 Tapestry5 中使用 InvokeListener?
如何转换此代码
进入tapestry5还是有不同的方法来调用方法?
java - 哪个 Java Web 框架最适合 Web 设计人员?
哪个 Java Web 框架最能支持“Web UI 设计师”角色?也就是说,哪个框架允许您:
- 在您的视图/页面上使用流行的网页设计工具(XHTML 验证器、CSS 编辑器等)
- 无需在服务器上运行即可查看更改
- 快速原型化不同的 UI 选项
- 支持“开发人员”和“设计人员”(术语故意模糊)之间的(有点)清晰的分离
像许多其他人一样,我发现我的大型遗留 Struts 1.x 应用程序严重缺乏这些功能,这些应用程序使用大量 JSP 片段和包含。
我已决定将我的应用程序移植到 JSR-168/268 门户环境,但尚未决定哪些 Java Web 框架将为 portlet 提供支持。我对任何类型(基于动作、基于组件等)持开放态度,一个关键标准是它对上述角色的支持程度。
我对 Tapestry 很感兴趣,它声称它的视图是符合 XHTML 的页面(只是在它们上添加了额外的 Tapestry 特定属性以在运行时处理)。听起来它可以很好地与 Web UI 设计师的工具包配合使用。但是,我想知道这是否是现实世界中实际发生的情况,或者是否需要妥协。
当然,如果有比 Tapestry 更好的东西,我很想听听!