我有一个返回JSON的控制器.它采用一种形式,通过弹簧注释验证自己.我可以从BindingResult获取FieldError列表,但它们不包含JSP将在标记中显示的文本.如何将错误文本发送回JSON?
@RequestMapping(method = RequestMethod.POST)
public
@ResponseBody
JSONResponse submit(@Valid AnswerForm answerForm, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) {
if (result.hasErrors()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
JSONResponse r = new JSONResponse();
r.setStatus(JSONResponseStatus.ERROR);
//HOW DO I GET ERROR MESSAGES OUT OF BindingResult???
} else {
JSONResponse r = new JSONResponse();
r.setStatus(JSONResponseStatus.OK);
return r;
}
}
Run Code Online (Sandbox Code Playgroud)
JSONREsponse类只是一个POJO
public class JSONResponse implements Serializable {
private JSONResponseStatus status;
private String error;
private Map<String,String> errors;
private Map<String,Object> data;
...getters and setters...
}
Run Code Online (Sandbox Code Playgroud)
调用BindingResult.getAllErrors()返回FieldError对象的数组,但它没有实际的错误.
对于:maven项目和自由式项目都会发生这种情况,当调用maven目标时,它会尝试使用绝对路径执行mvn.
[MY-Job] $ tools/Maven/Jenkins_Private_Maven/bin/mvn -f cc/pom.xml -Ddeploy_env=xxx.dev.prv -Dbranch=dev -D-Dsmdist.target=/opt/builds -U clean test -DtestGroups=unit,delegate -Do verride:server=xxx.dev.prv
FATAL: command execution failed
java.io.IOException: Cannot run program "tools/Maven/Jenkins_Private_Maven/bin/mvn" (in directory "workspace/MY-Job"): java.io.IOException: error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)
我可以看到mvn安装在用户家中:
/home/jenkins/tools/Maven/Jenkins_Private_Maven/bin/mvn
Run Code Online (Sandbox Code Playgroud)
但是它试图从工作区运行它:
/home/jenkins/workspace/MY-Job/tools/Maven/Jenkins_Private_Maven/bin/mvn
Run Code Online (Sandbox Code Playgroud) 我有一个资源(速度模板),我希望能够在开发过程中交换.然而,
getClass().getClassLoader().getResourceAsStream()
Run Code Online (Sandbox Code Playgroud)
似乎缓存模板.除了使用文件加载器而不是类加载器之外,有没有办法禁用它?
我有一个Play Framework 2.3项目,我想将单元测试和功能测试分开如下:
sbt test应运行单元测试并排除集成测试sbt it:test应该只运行集成测试Scala文档建议使用project/Build.scala,但我想使用build.sbt和的组合project/Build.scala,所以我的配置看起来像这样(我也尝试将所有配置放入Build.scala):
build.sbt
....
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-json" % "2.2.3",
"org.scalatest" %% "scalatest" % "2.1.5" % "it, test",
"org.mockito" % "mockito-all" % "1.9.5" % "it, test"
)
def funTestFilter(name: String): Boolean = ((name endsWith "ItTest") || (name endsWith "IntegrationTest"))
def unitTestFilter(name: String): Boolean = ((name endsWith "Test") && !funTestFilter(name))
testOptions in IntegrationTest := Seq(Tests.Filter(funTestFilter))
testOptions in Test := Seq(Tests.Filter(unitTestFilter)) …Run Code Online (Sandbox Code Playgroud) 在给定的页面,除了正常通话GA,我想提出一个事件调用,而我们所说的"幻影URL"叫什么.正常通话似乎被记录在GA,我可以在其上运行的报告,但既不事件调用,也不是"phaontom网址"通话记录.
这是我放在页面上的JavaScript
<!-- analytics events --><script type="text/javascript">$(document).ready(function() {_gaq.push(['_trackEvent', 'interview', 'ask', 'labelone', 2]);_gaq.push(['_trackPageview', '/phantom/interview/ask']);});</script><!-- end analytics events -->
Run Code Online (Sandbox Code Playgroud)
我可以在FireBug 3中看到__utml.gif的请求,所有3个看起来都对我好:
常规电话(我可以看到GA中的请求)
http://www.google-analytics.com/__utm.gif?utmwv=4.7.2&utmn=59651520&utmhn=www.xxxmysitexxx.com&utmcs=UTF-8&utmsr=1920x1200&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.1%20r53&utmdt=xxxmysitexxx.com&utmhid=787103110&utmr=0&utmp=%2Finterview%2Femail%2Flovedone%3FquestionIds%3D2%26questionIds%3D3&utmac=UA-12946710-1&utmcc=__utma%3D99976543.1556653907.1279057537.1279057537.1279123546.2%3B%2B__utmz%3D99976543.1279057537.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B
Run Code Online (Sandbox Code Playgroud)
事件调用[utme = 5(采访问 labelone)(2)(我没有看到任何GA事件)
http://www.google-analytics.com/__utm.gif?utmwv=4.7.2&utmn=505023631&utmhn=www.xxxmysitexxx.com&utmt=event&utme=5(interview*ask*labelone)(2)&utmcs=UTF-8&utmsr=1920x1200&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.1%20r53&utmdt=xxxmysitexxx.com&utmhid=787103110&utmr=0&utmp=%2Finterview%2Femail%2Flovedone%3FquestionIds%3D2%26questionIds%3D3&utmac=UA-XXXXX-X&utmcc=__utma%3D99976543.1556653907.1279057537.1279057537.1279123546.2%3B%2B__utmz%3D99976543.1279057537.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&gaq=1
Run Code Online (Sandbox Code Playgroud)
"幻像网址调用(在GA报告中搜索"幻像"不会返回结果)
http://www.google-analytics.com/__utm.gif?utmwv=4.7.2&utmn=358843229&utmhn=www.xxxmysitexxx.com&utmcs=UTF-8&utmsr=1920x1200&utmsc=24-bit&utmul=en-us&utmje=1&utmfl=10.1%20r53&utmdt=xxxmysitexxx.com&utmhid=787103110&utmr=0&utmp=%2Fphantom%2Finterview%2Fask&utmac=UA-XXXXX-X&utmcc=__utma%3D99976543.1556653907.1279057537.1279057537.1279123546.2%3B%2B__utmz%3D99976543.1279057537.1.1.utmcsr%3D(direct)%7Cutmccn%3D(direct)%7Cutmcmd%3D(none)%3B&gaq=1
Run Code Online (Sandbox Code Playgroud) 码:
<@spring.formInput 'myForm.spouseEmail' 'id="spouseEmail" class="text"'/>
<@spring.showErrors ', ' 'error'/>
Run Code Online (Sandbox Code Playgroud)
输出:
<span class="error">not a well-formed email address</span>
Run Code Online (Sandbox Code Playgroud)
我想要的是:
<div class="error">not a well-formed email address</div>
Run Code Online (Sandbox Code Playgroud) java ×2
spring-mvc ×2
classpath ×1
freemarker ×1
jenkins ×1
json ×1
maven ×1
sbt ×1
scala ×1
spring ×1
validation ×1
velocity ×1