这是代码味道,还是以Spring形式实现跨字段验证的最佳方式?
@FieldRequiredIf.List({
@FieldRequiredIf(ifField="firstHomePhoneNumber", matches={EMPTY, NULL},require ="firstMobilePhoneNumber",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.firstMobilePhoneNumber",groups=FirstLife.class),
@FieldRequiredIf(ifField="secondHomePhoneNumber", matches={EMPTY,NULL},require ="secondMobilePhoneNumber",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.secondMobilePhoneNumber",groups=SecondLife.class),
@FieldRequiredIf(ifField="lifeAssuredIsPolicyOwner", matches={FALSE},require ="policyOwnerName",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.policyOwnerName"),
@FieldRequiredIf(ifField="lifeAssuredIsPolicyOwner", matches={FALSE},require ="policyOwnerAddress",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.policyOwnerAddress"),
@FieldRequiredIf(ifField="insurableInterest", matches={InsurableInterestConstants.OTHER},require ="insurableInterestReason",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.insurableInterestReason",groups = NonSingleNonMortgage.class),
@FieldRequiredIf(ifField="firstAddress2", matches={NOT_EMPTY},require ="firstAddress1",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.firstAddress1",groups=FirstLife.class),
@FieldRequiredIf(ifField="firstAddress3", matches={NOT_EMPTY},require ="firstAddress2",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.firstAddress2",groups=FirstLife.class),
@FieldRequiredIf(ifField="firstAddress4", matches={NOT_EMPTY},require ="firstAddress3",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.firstAddress3",groups=FirstLife.class),
@FieldRequiredIf(ifField="firstAddress5", matches={NOT_EMPTY},require ="firstAddress4",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.firstAddress4",groups=FirstLife.class),
@FieldRequiredIf(ifField="secondAddress2", matches={NOT_EMPTY},require ="secondAddress1",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.secondAddress1",groups=SecondLife.class),
@FieldRequiredIf(ifField="secondAddress3", matches={NOT_EMPTY},require ="secondAddress2",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.secondAddress2",groups=SecondLife.class),
@FieldRequiredIf(ifField="secondAddress4", matches={NOT_EMPTY},require ="secondAddress3",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.secondAddress3",groups=SecondLife.class),
@FieldRequiredIf(ifField="secondAddress5", matches={NOT_EMPTY},require ="secondAddress4",elseDisplay = "FieldRequiredIf.correspondenceDetailsForm.secondAddress4",groups=SecondLife.class)
})
public class CorrespondenceDetailsForm {
...
}
Run Code Online (Sandbox Code Playgroud)
为了简化上述操作,我开始将这些列出的注释的几个逻辑组重构为单个自定义注释:(@ FirstLifeContactDetailsObserver和@SecondLifeContactDetailsObserver).这是重构的类级别注释: …
任何人都可以推荐可以替代物理白板的体面软件,如敏捷开发中所使用的那样?
我已经看了http://www.brightgreenprojects.com/但理想情况下我们想要一些我们可以托管的东西.我们使用Jira进行问题跟踪,目前正在考虑将GreenHopper集成到项目管理中.
到目前为止用户的普遍感觉似乎是GreenHopper有点笨重.那里有一个更直接的敏捷白板软件工具吗?
我在Windows 7机器上使用togoise svn 1.6.16,并在提交时收到错误,如下所示:
Error: Commit failed (details follow):
Error: At least one property change failed; repository is unchanged
Error: Invalid PROPPATCH property
Run Code Online (Sandbox Code Playgroud)
此处提出的上一个问题表明这是由于提交消息中的引号,但这不是我的问题.
我已经尝试重新安装svn,并且还尝试在清理我的项目结账时再次进行更改.但错误仍然存在.
任何人都可以推荐一种方法来访问无效的PROPPATCH属性并修复它吗?或者是否有一个已知的解决方法让我超过这个驼峰?任何信息非常感谢.