小编Woj*_*tek的帖子

AngularJS <input>验证,没有封闭的<form>

是否有可能在Angular中验证单个,<input>以类似的方式隔离表单被验证?我在考虑这样的事情:

<div class="form-group">
    <input name="myInput" type="text" class="form-control" ng-model="bindTo" ng-maxlength="5">
    <span class="error" ng-show="myInput.$error.maxlength">Too long!</span>
</div>
Run Code Online (Sandbox Code Playgroud)

上面的例子不起作用.将其封装在一起<form>并替换ng-showng-show="myForm.myInput.$error.maxlength"帮助.

是否可以不使用<form>

validation angularjs

94
推荐指数
1
解决办法
6万
查看次数

NoSuchMethodError:Jersey客户端中的MultivaluedMap.addAll

我正在尝试使用Jersey Client来模拟对我的Web服务的HTTP请求.我试图从文档中实现这个简单的例子.这是我的简短代码:

public void restoreTest(String sessionId) throws Exception {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(idsUrl).path("restore");
    Form form = new Form();
    form.param("sessionId", sessionId);
    target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
}
Run Code Online (Sandbox Code Playgroud)

我甚至没有实现整个示例,因为目前我在最后一行得到一个异常:

java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
    at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:254)
    at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:232)
    at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60)
    at org.icatproject.idsclient.TestingClient.restoreTest(TestingClient.java:112)
    at org.icatproject.ids.ids2.ArchiveTest.restoreThenArchiveDataset(ArchiveTest.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) …
Run Code Online (Sandbox Code Playgroud)

java client jax-rs jersey

20
推荐指数
2
解决办法
3万
查看次数

Rest Assured - 将响应JSON反序列化为List <POJO>

我有一个POJO Artwork.我正在List以JSON格式从HTTP响应主体中的RESTful Web服务中检索这些对象中的一个.我正在尝试编写一个基于Rest Assured的测试来分析返回的列表.代码如下所示:

Response response = get("/artwork");
List returnedArtworks = response.getBody().as(List.class)
Run Code Online (Sandbox Code Playgroud)

问题是,我无法让Rest Assured将返回的JSON解析为List<Artwork>.相反,我得到了一个List<LinkedHashMap>.地图有一个合适的结构,即可以由Jackson映射到Artwork对象,但我想避免手动映射它.

我的模型中的JSON映射是可以的,因为当我像这样映射单个对象时:

Artwork returnedArtwork = response.getBody().as(Artwork.class);
Run Code Online (Sandbox Code Playgroud)

它工作正常.

是否有可能returnedArtworks成为List<Artwork>

java generics json rest-assured

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

在Spring Boot Data REST中进行实体验证后运行@HandleBeforeCreate

我正在使用Spring Boot Data REST来保存我的User实体

@Entity
public class User {

    @Id
    @GeneratedValue
    private long id;

    @NotEmpty
    private String firstName;

    @NotEmpty
    private String lastName;

    @NotEmpty
    private String email;

    @Size(min = 5, max = 20)
    private String password;

    // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

使用存储库:

public interface UserRepository extends CrudRepository<User, Long> {}
Run Code Online (Sandbox Code Playgroud)

我想要做的是首先验证POSTed用户:

@Configuration
public class CustomRestConfiguration extends SpringBootRepositoryRestMvcConfiguration {

    @Autowired
    private Validator validator;

    @Override
    protected void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
        validatingListener.addValidator("beforeCreate", validator);
    }

}
Run Code Online (Sandbox Code Playgroud)

并且只有在将用户密码存储到数据库之前才对其进行哈希处理:

@Component
@RepositoryEventHandler(User.class)
public class UserRepositoryEventHandler …
Run Code Online (Sandbox Code Playgroud)

java validation spring spring-data-rest

9
推荐指数
1
解决办法
1942
查看次数

在定位系统中对摄像机倾斜进行编程校正

快速介绍:
我们正在开发一种定位系统,其工作方式如下.我们的相机位于机器人上,朝上(看着天花板).在天花板上我们有类似地标的东西,多亏了我们可以计算出机器人的位置.它看起来像这样:

在此输入图像描述

我们的问题:
相机倾斜了一点(我想是0-4度),因为机器人的表面不是很完美.这意味着,当机器人转身但停留在相同的坐标时,摄像机会看到天花板上的不同位置,因此我们的定位程序会产生机器人的不同位置,即使它只是转身并且没有移动位.

我们当前的(硬编码)解决方案:
我们从相机拍摄了一些测试照片,将其绕镜头轴转动.从图片中我们推断出它是倾斜的.在图片的"向上方向"4度.使用一些简单的几何变换我们已经设法减少倾斜效果并找到真实的相机位置.在下面的图片中,灰点标记图片的中心,黑点是相机所在天花板上的真实位置.从灰点转换黑点(计算其位置以校正灰点位置).您可以很容易地注意到,灰色圆点在天花板上形成一个圆圈,黑色圆点是该圆圈的中心.

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

我们的解决方案存在问题:
我们的方法完全不可移植.如果我们将相机移动到新机器人,则必须完全重新校准倾斜的角度和方向.因此,我们希望将校准阶段留给用户,这将要求获取一些图片,由他评估倾斜参数,然后在程序中设置它们.我的问题是:你能想到更好(更自动)的解决方案来计算倾斜参数或纠正图片上的倾斜吗?

image image-processing computer-vision

6
推荐指数
1
解决办法
463
查看次数

JsonPath - 读取Java Long类型

我有JSON数据,看起来像这样

{ "会话ID":7242750700467747000}

该号码先前从服务器响应中获取,并在服务器端生成为Java Long.客户端认为自己认为这是sessionID并发送请求.问题是,当客户端的请求到达我不得不再次解析这个值long类型的服务器.我使用JsonPath,具体来说:

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path-assert</artifactId>
    <version>0.8.1</version>
    <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当我像这样解析JSON数据时

long sessionID = JsonPath.read(json,"$ .sessionID");

我得到一个例外:

java.lang.ClassCastException:java.lang.Integer无法强制转换为java.lang.Long

因此看起来这个数字是由JsonPath解析为Integer的.这肯定会导致错误的结果,因为Integer小于Long.在JsonPath中有什么办法可以解析并将数据作为Long返回吗?

java json types jsonpath

6
推荐指数
2
解决办法
6527
查看次数

使用OpenCV检测小圆圈(图像质量差)

我正试图检测你在这张照片中央可以看到的四个点: 在此输入图像描述 这个转换为png,我实际上使用ppm格式(从相机的原始输出转换后).实际处理的图像可在此处获得

我是opencv的新手,因此在检测这些点时遇到了很大的问题.这是我迄今为止最好的结果: 在此输入图像描述

正如你所看到的,我已经检测到3个点,但除此之外,图片中的许多其他东西都被识别为圆圈.

这是代码:

    IplImage* img;
    if((img = cvLoadImage( "photos/img-000012.ppm", 1)) == 0 )
    {
        perror("cvLoadImage");
        return 1;
    }
    cvNamedWindow( "Image view", 1 );
    cvShowImage( "Image view", img );
//  cvWaitKey(0);

    IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); // allocate a 1 channel byte image
    CvMemStorage* storage = cvCreateMemStorage(0);
    cvCvtColor( img, gray, CV_BGR2GRAY );
    cvShowImage( "Image view", gray );
//  cvWaitKey(0);

    cvSmooth( gray, gray, CV_GAUSSIAN, 3, 3, 0, 0 );
    cvShowImage( "Image view", gray );
    cvWaitKey(0);

    CvSeq* …
Run Code Online (Sandbox Code Playgroud)

c opencv computer-vision feature-detection

5
推荐指数
1
解决办法
6293
查看次数

GSL解决了钟摆运动的ODE问题

考虑到摆锤初始角度(x),重力加速度(g),线长度(l)和时间步长(h),我试图求解摆动运动的微分方程.我用Euler方法试过这个,一切都没问题.但现在我要使用在GSL中实现的Runge-Kutta方法.我试图从gsl手册中学习它,但我遇到了一个问题.钟摆不想停下来.假设我以初始角度1 rad开始它,无论它已经做了多少波动,它始终具有1弧度的峰值倾斜.这是我用来给GSL的公式和函数:

x''(t) + g/l*sin(x(t)) = 0
Run Code Online (Sandbox Code Playgroud)

改造它:

x''(t) = -g/l*sin(x(t))
Run Code Online (Sandbox Code Playgroud)

和分解:

y(t) = x'(t)
y'(t) = -g/l*sin(x(t))
Run Code Online (Sandbox Code Playgroud)

这是代码片段,如果这还不够,我可以发布整个程序(它不会太长),但也许这里的问题在某处:

    int func (double t, const double x[], double dxdt[], void *params){
        double l = *(double*) params;
        double g = *(double*) (params+sizeof(double));
        dxdt[0] = x[1];
        dxdt[1] = -g/l*sin(x[0]);
        return GSL_SUCCESS;
    }
Run Code Online (Sandbox Code Playgroud)

参数gl正确传递给函数,我已经检查过了.

c ode gsl differential-equations

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

矢量迭代次数比size()

我有这段代码:

for (std::vector<Marker>::iterator it = markers.begin(); it != markers.end(); ++it) {
    if (it->getDots().size() < 3) {
        markers.erase(it);
    }
}
Run Code Online (Sandbox Code Playgroud)

在其中一个测试输入(应用程序进行图像分析)中,我得到了一个段错误.我试图调试代码(无济于事)并注意到一件事.当问gdb p markers.size()我收到$9 = 3.所以我希望循环迭代三次,但令人惊讶的是它(至少)完成了5次.在第五次迭代中有一个段错误.我还注意到,导致错误的不是*it(这里it->)的解引用.具体来说it->getDots(),这是一个简单的吸气剂.

我很少用C++编写,所以它可能是一个简单的错误,但我的调试和谷歌搜索都没有带来任何解决方案.你能帮忙吗?

我想强调的是,在各种不同的输入(略有不同的图像)上,这个功能正常工作,所以我更难以追踪到这个错误.

c++ iterator std stdvector

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