Apache Wicket(http://wicket.apache.org/)和Apache Tapestry(http://wicket.apache.org/)都是面向组件的Web框架 - 与Apache Foundation的基于行为的框架(如Stripes)相反.两者都允许您使用Java中的组件构建应用程序.它们看起来和我很相似.
这两个框架之间有什么区别?有人有经验吗?特别:
编辑:我已经阅读了两者的文档,我已经使用过两者.这些问题不能通过阅读文档来回答,而是根据使用这些问题一段时间的经验,例如如何在无状态模式下使用Wicket用于高性能站点.谢谢.
我想创建一个Tapestry Skeletion项目.我遵循这些指南:http: //maven.apache.org/download.html#Installation,http : //juanjoefe.com/tutoriales/instalar-maven-en-windows-7/ 以及互联网上的其他指南.
但是,当我键入"mvn --version"或"mvn -version"时,我总是收到错误" mvn未被识别为内部或外部命令,可操作程序或批处理文件.
我的朋友使用Windows 7 x86,他们没有问题.如何在Windows 7 x64上安装Maven 3.0.3?
当用2.4.6最小化yui时,我遇到了这个问题:
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:232
at java.lang.String.substring(String.java:1934)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.printSourceString(JavaScriptCompressor.java:267)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:330)
at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:533)
Run Code Online (Sandbox Code Playgroud)
它通过我的IDE启动时工作,但当部署到jboss时它没有.这个地方:http://yuilibrary.com/forum/viewtopic.php?p = 200686对同一个问题进行了一些讨论.
显然问题是org/mozilla/javascript/Parser在我的maven配置中拉入的两个罐子里面:
<dependency>
<groupId>com.yahoo.platform.yui</groupId>
<artifactId>yuicompressor</artifactId>
<version>2.4.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用maven排除等或通过升级我的YUI版本来解决这个问题.它似乎很无聊,它只是不起作用,我不想写一个自定义类加载器.
请帮忙!
我们使用Tapestry 5.1.0.5构建了一个网站,当我们点击起始页时,我们偶尔遇到一个缺少关键问题.
这个问题只出现了4次,这是一个随机的问题.
实际配置:
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "fr");=>所以默认本地是fr和不en
configuration.add("tapestry.start-page-name", "Accueil");=>所以当我们点击/tapestry重定向我们/accueil
这是我们有时会看到的问题:
当命中/tapestry搜索键*_en.properties而不是*_fr.properties但如果我们点击/accueiltapestry搜索键*_fr.properties.
跟踪日志:
Caused by: java.lang.NumberFormatException: For input string: **"[[missing key: prehome.store.opening.delay]]"**
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.initStoresAndRegions(StoreOverlayer.java:652)
at XXXXXXX.tapestry.components.overlayer.StoreOverlayer.setupRender(StoreOverlayer.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
... 94 more
01-02-2012 11:55:52:979 23120252 ERROR org.apache.tapestry5.internal.services.InternalModule.PagePool - Page Page[Accueil en] is dirty, and will be discarded (rather than returned to the page …Run Code Online (Sandbox Code Playgroud) 我想在我的tapestry项目中添加REST,因此需要知道如何实现它.
有什么更好的方法?
谢谢.
[编辑,从答案中复制:]我必须将GET,PUT,POST和DELETE服务添加到我的tapestry应用程序中.我看到Tapestry有RESTful url但是JAX-RS和注释呢?
我意识到有很多类似的问题,但没有一个能帮我解决这个问题.
我正在使用一个名为Tynamo的CRUD框架,后者又依赖于Apache Tapestry和Hibernate.这一切都很好,除了当我尝试在具有复合/复合主键的表上使用CRUD时.
我决定不去这@EmbeddedId条路,因为它似乎根本不适用于框架.话虽这么说,我一直在使用这种@IdClass方法,主要是工作; 我想我是一两行远离成功的代码.
问题在于,当它开始使用反射来构建对象时,它会爆炸并说org.hibernate.InstantiationException: No default constructor for entity: ...,即使确实有一个公共的空构造函数用于该内部类.
在回答时,请避免使用代码片段,并使用完整的课程等,以便访问此主题的其他人可以更全面地了解正在发生的事情.
你可以在下面看到我的课程:
package com.company.crud.entities;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;
import com.company.crud.entities.TransferExtension.TransferExtensionPK;
@Entity(name = "Transfer_Extensions")
@IdClass(TransferExtensionPK.class)
public class TransferExtension implements Serializable {
private static final long serialVersionUID = 1L;
@Id
// @NotNull(message = "Please supply a Script Code")
// @Length(min = 3, max = 4)
@Column(name = "Division", nullable = false)
private String scriptCode;
@Id
// @NotNull(message = …Run Code Online (Sandbox Code Playgroud) 我正在尝试遍历一个hashmap并显示一个数字复选框,其id为hashmap的键,并标记hashmap的值.任何人都知道挂毯的语法是怎样的?
干杯迪米特里斯
有没有比较JSF 2和Tap 5的最新文章?我似乎发现的一切都是比较JSF 1.2和Tap4.
有没有人有T5或JSF2的经验和时间传福音?
我正在寻找一个基于Hibernate和mySql的Java快速开发框架.
其他框架销售宣传已被接受,但JSF2和T5目前是我们的首选.
是否可以将参数传递给控制器中定义的方法,并由tml调用?
TML
${getDynamicFieldValue("Subject")}
Run Code Online (Sandbox Code Playgroud)
java的
public String getDynamicFieldValue(String fieldToCompare)
{
//Logic
}
Run Code Online (Sandbox Code Playgroud)
例外
Could not convert 'getDynamicFieldValue("Subject")' into a component parameter binding: Error parsing property expression 'getDynamicFieldValue("Subject")': Unable to parse input at character position 22.
Run Code Online (Sandbox Code Playgroud) 使用Eclipse Juno SR1:
我在我的eclipse安装中安装了Tapestry Tools,并且我也定制了我的XML Formatter.
但是,无论我是否在TML编辑器或XML编辑器中打开tml文件,当我让eclipse格式化文件时,使用的格式规则与"普通"XML文件不同.
如何确保适用相同的规则?
另外,为什么格式化程序有时允许比指定行宽更长的行?它似乎只在属性超出限制时才引入换行符,但如果属性值太长则不会...
参考问题: