假设您有两个相同bean类型的实例,并且您希望显示两个实例之间已更改内容的摘要 - 例如,您在应用程序中有一个表示用户设置的bean,并且您希望能够显示用户正在提交的新设置(实例#1)中已更改内容的列表与已为用户存储的内容(实例#2)的列表.
对于诸如此类的任务,是否存在常用的算法或设计模式,可能是可以抽象并重用于不同类型的bean的东西?(我很难想到这类问题的好名字,知道谷歌会怎么做).我检查过commons-beanutils,没有任何东西弹出我.
我对面向对象编程比较陌生.我非常理解这些概念,但实际上,我很难找到有关如何在我的Zend Framework应用程序中最好地使用模型的信息.
具体来说,我有一个不使用数据库表的模型(不扩展任何东西).它使用getter和setter来访问其受保护的成员.我发现自己正在努力学习如何在视图中最好地展示这个模型.我在视图模板中不需要逻辑,但我发现自己处于以下情况:
在我的控制器中:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
Run Code Online (Sandbox Code Playgroud)
在我的视图模板中:
<h2><?= $this->object->getName() ?></h2>
Run Code Online (Sandbox Code Playgroud)
我真的不喜欢在我的视图模板中调用函数,但我不知道更好的方法.我不希望我的模型成员公开,但我基本上想要达到相同的结果:
<h2><?= $this->object->name ?></h2>
Run Code Online (Sandbox Code Playgroud)
我不希望我的控制器完成所有关于模型的所有工作:
$object = new Object();
$object->setName('Foo Bar');
$this->view->object = $object;
$this->view->object->name = $object->getName();
Run Code Online (Sandbox Code Playgroud)
在Zend Framework中使用模型的最佳实践是什么?任何人都可以推荐任何可以帮助我理解Zend Framework中的模型/视图困境的教程吗?
我有一个数据库字段,其中包含一个原始日期字段(存储为字符数据),如
2008年9月26日星期五东部夏令时间晚上8:30
我可以使用SimpleDateFormat轻松地将其解析为Date
DateFormat dbFormatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm aa zzzz");
Date scheduledDate = dbFormatter.parse(rawDate);
Run Code Online (Sandbox Code Playgroud)
我想做的是从这个字符串中提取一个TimeZone对象.在JVM中的默认时区,这个应用程序在运行是GMT,所以我不能使用.getTimezoneOffset()从Date上述分析(因为它会返回默认时区).
除了标记原始字符串并找到时区字符串的起始位置(因为我知道格式将始终是EEEE, MMMM dd, yyyy hh:mm aa zzzz)之外,有一种方法是使用DateFormat/SimpleDateFormat/Date/Calendar API来提取TimeZone对象 - 它将具有相同的TimeZone作为我已解析的字符串DateFormat.parse()?
在Java API中有一点让我感到Date困惑Calendar的是,Calendar它应该Date在所有地方取代......但是他们决定,哦,嘿,让我们仍然Date在DateFormat课堂上使用.
(我已经问过jmeter用户邮件列表的相同问题,但我也想在这里尝试一下 - 所以至少我可以在找到它之后用答案更新它).
我在使用JMeter使用自签名SSL证书测试Tomcat webapp时遇到问题.JMeter抛出带有消息的SocketException Unconnected sockets not implemented.根据JMeter的文档,该应用程序的设计和编写是为了接受任何证书,自签名或CA签名或其他.
有没有人遇到过这个特定的例外?
我试图从服务器导出此证书并将其导入我的本地密钥库(使用keytool -import -alias tomcat -file),但结果是相同的.
我也尝试将javax.net.debug = all设置为JVM arg(JSSE参考指南将此列为调试步骤); 但是,我没有在任何地方看到任何调试输出 - 我应该在标准输出/错误之外的其他地方预期吗?
有没有人见过一个工具,它将代码覆盖率结果与SCM/VCS集成,以将未经测试的代码行归因于开发人员?例如,是否有一个工具将采用NCover的Coverage.Xml,将其与SVN责备相结合,并生成一个报告,告诉我像开发人员提交最多未经测试的代码?
我最近开始使用代码覆盖工具(特别是Emma和EclEmma),我真的很喜欢它让我了解单元测试的完整性 - 以及查看我的单元测试的代码区域的能力.一点儿打.我目前在一个没有进行大量单元测试的组织工作,我计划真正推动每个人进行单元测试和代码覆盖以及TDD,并希望转换组织.
我不确定这个问题的一个问题是我应该在多大程度上接受我的代码覆盖.例如,如果我有一个这样的类:
//this class is meant as a pseudo-enum - I'm stuck on Java 1.4 for time being
public final class BillingUnit {
public final static BillingUnit MONTH = new BillingUnit("month");
public final static BillingUnit YEAR = new BillingUnit("year");
private String value;
private BillingUnit(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
public boolean equals(Object obj) {
return value.equals(((BillingUnit) obj).getValue());
}
public int hashCode() {
return value.hashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一些简单的单元测试,以确保equals()正常工作,getValue() …
我正在使用一些遗留组件,我们使用一些使用JAXRPC-RI(参考实现)库构建的客户端代码与SOAP Web服务(我绝对,非常厌恶的技术)进行交互.
我有兴趣能够使用存根设置超时,以便万一Web服务器在X秒内没有回复,应用程序不会在那里永远等待响应.
我正在使用Apache Axis生成的客户端/存根,您只需使用它org.apache.axis.client.Stub.setTimeout()来设置超时.
对于我的生活,我无法弄清楚在使用JAXRPC-RI创建的存根时如何设置超时:
com.sun.xml.rpc.client.StubBase和实现javax.xml.rpc.Stub和com.sun.xml.rpc.spi.runtime.StubBase.stub._setProperty("axis.connection.timeout", 1000);会在运行时导致异常:javax.xml.rpc.JAXRPCException: Stub does not recognize property: axis.connection.timeout有没有人对使用JAXRPC-RI客户端时如何设置/强制执行超时有任何想法?它甚至可能吗?
我有一个jar文件,在html文件中用作applet.我想修改jar文件的内容并重建jar文件,以便html可以正常使用新的jar文件.我怎样才能做到这一点??
我已经尝试使用7zip nad解压缩修改源并创建了新的jar.但是当我在html中使用它时,它会显示一些java.lang.Classnotfound错误
我写了一个简单的脚本来解决一个"逻辑谜题",即从学校获得许多规则的拼图类型,然后必须能够找到问题的解决方案,例如"有五位音乐家名为A,B,C ,D和E在音乐会上演奏,每个演奏一个接一个...如果A在B之前,D不在最后......谁在什么时候演奏?等等
为了评估可能的解决方案,我将每个"规则"编写为一个单独的函数,它将评估一个可能的解决方案(简单地表示为字符串列表)是否有效,例如
#Fifth slot must be B or D
def rule1(solution):
return solution[4] == 'B' or solution[4] == 'D'
#There must be at least two spots between A and B
def rule2(solution):
returns abs(solution.index('A') - solution.index('B')) >= 2
#etc...
Run Code Online (Sandbox Code Playgroud)
我有兴趣找到Pythonic方法来测试一个可能的解决方案是否通过所有这些规则,并能够在第一个失败后停止评估规则.
起初我写了最简单的事情:
def is_valid(solution):
return rule1(solution) and rule2(solution) and rule3(solution) and ...
Run Code Online (Sandbox Code Playgroud)
但这看起来相当丑陋.我想也许我可以通过列表理解之类的东西让这个阅读更加优雅......
def is_valid(solution)
rules = [rule1, rule2, rule3, rule4, ... ]
return all([r(solution) for f in rules])
Run Code Online (Sandbox Code Playgroud)
...但后来我意识到,由于列表理解是在all()评估函数之前生成的,因此它具有不会短路的副作用 - 即使第一个返回,每个规则也会被评估False.
所以我的问题是:是否有更多的Pythonic /功能方式能够评估True/ …
python functional-programming list-comprehension short-circuiting
您好我正在尝试在我的父pom中创建一个自定义描述符ref,它将所有依赖项与源包装在一起.我把assembly.xml很好地固定下来,但当我将它添加到我的基本POM程序集时:程序集失败如下:
[INFO] [assembly:assembly]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error reading assemblies: No assembly descriptors found.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error reading assemblies: No assembly descriptors found.
Run Code Online (Sandbox Code Playgroud)
但汇编:单身似乎工作正常.我已经尝试将jar-with-dependencies ref添加到POM中,但我不确定这是否可行.
这是我在我的基础pom中所拥有的:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-3</version>
<dependencies>
<dependency>
<groupId>mycompany.jar.assembly</groupId>
<artifactId>jar-with-dependencies-and-sources-test</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
当我调用mvn程序集时,有没有人知道是谁让这个工作:从命令行汇编?
提前致谢.