小编Mik*_*ike的帖子

如何从BindingResult获取控制器中的错误文本

我有一个返回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对象的数组,但它没有实际的错误.

java spring json spring-mvc spring-annotations

25
推荐指数
3
解决办法
6万
查看次数

詹金斯从错误的路径执行maven

对于: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)

maven jenkins

13
推荐指数
2
解决办法
4万
查看次数

getClass().getClassLoader().getResourceAsStream()正在缓存资源

我有一个资源(速度模板),我希望能够在开发过程中交换.然而,

getClass().getClassLoader().getResourceAsStream() 
Run Code Online (Sandbox Code Playgroud)

似乎缓存模板.除了使用文件加载器而不是类加载器之外,有没有办法禁用它?

java velocity classpath

12
推荐指数
3
解决办法
4476
查看次数

为什么在使用"sbt it:test"时Play/Scala项目中的集成测试没有执行?

我有一个Play Framework 2.3项目,我想将单元测试和功能测试分开如下:

  1. 运行sbt test应运行单元测试并排除集成测试
  2. 运行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)

scala sbt playframework-2.3

12
推荐指数
2
解决办法
7454
查看次数

Google未记录谷歌分析事件

在给定的页面,除了正常通话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)

google-analytics

2
推荐指数
1
解决办法
1950
查看次数

是否有可能让freemarker的<@ spring.showErrors在div而不是span中显示错误

码:

<@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)

validation freemarker spring-mvc

2
推荐指数
1
解决办法
2452
查看次数