小编Bos*_*jin的帖子

在JSP中迭代List对象

我正在研究一个项目,试图教自己弹簧和支柱.我目前停留在JSP页面上.我有一个带变量eid的pojo类和带有getter/setter的ename,我在sql中也有一个表,其中包含六个填充行的相同值.
我通过a访问我的数据库JdbcTemplate并将结果存储在列表中,然后我将此列表传递到我的操作页面,我将其设置为request.setAttribute("empList",eList).在我的jsp页面中,我调用该属性,然后尝试使用它迭代它JSTL.
但是没有任何显示,我知道我的列表变量中包含数据,因为我使用表达式标签检查它<%=eList%>,对象显示如下:

[org.classes.database.Employee@d9b02, 
org.classes.database.Employee@13bce7e, 
org.classes.database.Employee@171cc79, 
org.classes.database.Employee@272a02, 
org.classes.database.Employee@137105d, 
org.classes.database.Employee@1359ad]
Run Code Online (Sandbox Code Playgroud)

我想也许我在jstl上遗漏了一些东西,但我的META-INF/lib文件夹中有jstl-1.2 .我也尝试在配置路径文件中添加它,但仍然没有.我也有正确的标签网址.
当我做一个简单的时候<c:out value="Hello"/>.你好打印出来.因此,这让我相信我jstl的工作正常,但是当我尝试迭代我的列表时jstl根本没有任何显示.

无论如何这里是我的JSP页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-   8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.List"%>
<!DOCTYPE html>
<% List eList = (List)session.getAttribute("empList");%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Employee Details</title>
</head>
<body>
<c:out value="Hello"></c:out>
<h3>Employee Details</h3>
<hr size="4" color="gray"/>
<table>
<%=eList%>
    <c:forEach items="${eList}" var="employee">
        <tr>
            <td>Employee ID: <c:out value="${employee.eid}"/></td>
            <td>Employee Pass: …
Run Code Online (Sandbox Code Playgroud)

java sql spring jsp jstl

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

JdbcTemplate.update()插入返回值

JdbcTemplate.update() 返回受影响的行数 - 因此您不仅知道删除/更新是成功的,还知道删除/更新了多少行.

如果我尝试插入一行,返回值是多少.

是否有可能将返回值设为"0"?

 private static final String insertSql =
 "INSERT INTO employee (" +
 " name, " +
 " surname, " +
 " title, " +
 " created) " +
 "VALUES (John, Smith, Software developer, new Date())";
 int row = template.update(insertSql, params, types);
Run Code Online (Sandbox Code Playgroud)

java db2 spring-mvc spring-jdbc jdbctemplate

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

Spring Batch,JdbcExecutionContextDao java.util.Map $ Entry反序列化器问题,xstream 1.4.1

我在使用Spring Batch 2.1.9时遇到问题:当我使用jobExplorer.getJobExecution(jobExecutionId)时,当DAO必须反序列化一个字符串时,我发现了一个问题:

{"map":[{"entry":{"string":"parsedComparingDate","date":"2014-03-08 23:00:00.0 UTC"}}]}
Run Code Online (Sandbox Code Playgroud)

使用方法从BATCH_JOB_EXECUTION_CONTEXT表中获取JdbcJobExecutionDao.getJobExecution()

我知道spring批处理使用xstream 1.3,但是在我的Pom中,我有:

  • 春季批次2.1.9 ;
  • xstream 1.4.1(从smook继承);
  • 抛弃1.3.3(继承自cxf);

此外,我读到xstream 1.3不能与jettison 1.3.3一起正常工作,但是使用xstream 1.3(不包括pom的xstream 1.4.1)可以正常工作,而使用xstream 1.4.1或主要版本时,我发现以下异常:

Caused by: java.lang.InstantiationError: java.util.Map$Entry
        at sun.reflect.GeneratedSerializationConstructorAccessor1.newInstance(Unknown Source) [:1.6.0_23]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_23]
        at com.thoughtworks.xstream.converters.reflection.Sun14ReflectionProvider.newInstance(Sun14ReflectionProvider.java:75) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.java:424) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:229) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:85) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:77) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:71) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:66) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) [xstream-1.4.1.jar:]
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) …
Run Code Online (Sandbox Code Playgroud)

java maven-2 xstream jettison spring-batch

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

使用if语句返回没有数组的正确"返回"的for循环方法?

我正在做一些java练习,我正在尝试创建一个计数为100的方法,并在每次for循环"循环"时打印该数字.
唯一的例外是,当数是3整除它会打印出"嘶嘶声","嗡嗡"当数是整除5.现在,我有我的方法三种回程类型是会返回一个字符串.但是,错误说我没有返回值.我知道我必须使它返回一个字符串外的for循环,但我有一些麻烦搞清楚应该怎么去回报我想要的价值.
我也知道我可以使用数组甚至arrayList来解决这个问题,但我认为没有它可能,我想尝试这样做.

任何帮助将非常感谢!

这是代码:

package etcOvaningar;

public class ovning1 {

    public static String fizz ="Fizz!";
    public static String buzz ="Buzz!";

    public static String countDown(){
    for (int number = 0; number < 100; number++){
        if (number%3 == 0){
            return fizz;
        }
        else if (number%5 == 0){
            return buzz;
        }
        else
            return String.valueOf(number);
    }
           //I need to insert a return here I suppose, but I want the correct return from the if and else //statements
    }

    public static void main(String[] args){ …
Run Code Online (Sandbox Code Playgroud)

java methods loops return

4
推荐指数
1
解决办法
6992
查看次数

无法使用JBoss服务器实例化InitialContext

我正在尝试创建一个,InitialContext所以我可以向JNDI询问一些企业java bean.JBoss运行正常,但是当我运行java代码时,我得到了一个异常.

我正在运行JBoss 7.1

这是我的代码:

public class Test {

    public static void main(String[] args){
        InitialContext ctx=getInitialContext();
        Object ref=null;
        try {
            ref = ctx.lookup("ParamEJB/remote");
        } catch (NamingException e) {
            System.out.println("Lookup Failed");
            e.printStackTrace();
        }
        Param stub=(Param)PortableRemoteObject.narrow(ref, Param.class);
        int times=stub.getTimes();
        for(int i=0;i<times;i++)
            System.out.println(stub.getMessage());
    }

    public static InitialContext getInitialContext(){
        Hashtable<String,String> h=new Hashtable<String,String>();
        h.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
        h.put("java.naming.provider.url","localhost");
        try {
            return new InitialContext(h);
        } catch (NamingException e) {
            System.out.println("Cannot generate InitialContext");
            e.printStackTrace();
        }
        return null;
    }
    }
Run Code Online (Sandbox Code Playgroud)

在我启动JBoss服务器之后,我尝试运行java代码并得到以下异常:

javax.naming.NoInitialContextException: Cannot instantiate class:     org.jnp.interfaces.NamingContextFactory [Root exception is …
Run Code Online (Sandbox Code Playgroud)

java jboss jndi

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

使用Gson反序列化映射键需要一个对象

我收到错误:

Exception in thread "main" com.google.gson.JsonParseException: 
Expecting object found: "com.shagie.app.SimpleMap$Data@24a37368"
Run Code Online (Sandbox Code Playgroud)

尝试解除使用非平凡键的Map时:

package com.shagie.app;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.util.HashMap;

public class SimpleMap {
    public static void main(String[] args) {
        Wrapper w = new Wrapper();
        w.m.put(new Data("f", 1), new Data("foo", 3));
        w.m.put(new Data("b", 2), new Data("bar", 4));

        GsonBuilder gb = new GsonBuilder();
        gb.setPrettyPrinting();
        Gson g = gb.create();

        String json = g.toJson(w);

        System.out.println(json);

        w = g.fromJson(json, Wrapper.class);
        System.out.println(w.m.isEmpty());
    }

    static public class Wrapper {
        HashMap<Data, Data> m = new HashMap<Data, Data>();
    } …
Run Code Online (Sandbox Code Playgroud)

java serialization json gson deserialization

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

具有 RabbitMQ 客户端身份验证异常的 QPID 代理

我正在使用 Java QPID 代理进行测试。我能够使用质子客户端发送和接收消息,但使用匿名身份验证。我有兴趣在打开身份验证的情况下进行测试,并了解质子客户端不支持(尚)。因此,我下载了 rabbitMQ 客户端 jar。我正在使用密码文件身份验证(随 QPID 一起提供)。

我像这样设置我的 RabbitMQ 客户端连接工厂:

    connectionFactory = new ConnectionFactory();
    connectionFactory.setHost("localhost");
    connectionFactory.setUsername("guest");
    connectionFactory.setPassword("guest");
Run Code Online (Sandbox Code Playgroud)

此行上的代码失败(特别是在 getConnection 上)。

    connection = RabbitMQConnectionFactory.getInstance().getConnection();
Run Code Online (Sandbox Code Playgroud)

这是例外:

java.io.IOException:找不到兼容的身份验证机制 - 服务器在 com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:309) 处提供 [CRAM-MD5] 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory) .java:590) 在 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:612) 在 com.vue.rabbit.core.RabbitMQConnectionFactory.getConnection(RabbitMQConnectionFactory.java:37) 在 com.vue.rabbit.producer。 SimpleProducer.main(SimpleProducer.java:25)

如果我将 QPID 代理更改为使用匿名身份验证,并且还将客户端更改为不设置用户/密码,则会收到类似的“服务器提供 [ANONYMOUS]”异常

难道我做错了什么?这些应该是兼容的?有点不同的问题是,如果 Java 和 C++ QPID 代理都支持相同的在线 AMQP 协议,为什么还要存在它们?在此先感谢您的帮助!

java authentication amqp rabbitmq qpid

4
推荐指数
1
解决办法
3752
查看次数

querydsl 生成的 q 源代码未正确导入

我正在尝试将 querydsl 添加到现有系统,但在获取生成的 Q 源进行编译时遇到问题。我读过几个类似的问题和解释https://spring.io/blog/2015/09/04/what-s-new-in-spring-data-release-gosling#querydsl-web-support,https//blog.jdriven.com/2018/10/using-querydsl-annotation-processor-with-gradle-and-intellij-idea/(即使这与idea相关)),几乎每个querydsl的堆栈溢出问题.. 。

这是我的 build.gradle 的一部分,它描述了问题所在:

ext {
  ... 
  querydslVersion = '4.2.1'
}

sourceSets {
    generated {
       java {
            srcDirs = [ 'build/generated' ]
        }
    }
    main {
        java {
            srcDirs = [ 'src/main/java' ]
        }
    }
}

...

dependencies {
    ...
    compile("com.querydsl:querydsl-core:${querydslVersion}")
    compile("com.querydsl:querydsl-jpa:${querydslVersion}")
    compile "com.querydsl:querydsl-apt:$querydslVersion:jpa"
    compileOnly group: 'org.projectlombok', name: 'lombok'
    annotationProcessor(
        "com.querydsl:querydsl-apt:${querydslVersion}:jpa",
        "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
        "javax.annotation:javax.annotation-api:1.3.2",
        "org.projectlombok:lombok"
    )
}
Run Code Online (Sandbox Code Playgroud)

当我尝试构建时,我收到错误:cannot find symbol QuerydslBinderCustomizer<QSample>在存储库类中。QSample.java是根据模型Sample生成的,它位于

/build/ generated/sources/annotationProcessor/java/main/com/prep/ws/model/QSample.java。

由于它位于 build 文件夹中,我很困惑为什么它对于 IDE 和 gradle …

gradle querydsl spring-boot

4
推荐指数
1
解决办法
2994
查看次数

如果只从db获取数据,我是否需要实体?

希望简单的问题:

  • 如果我有一个应该只从数据库中获取数据的应用程序(它不会持久存在)?
  • 我是否需要由@ Entity-annotated类集合提供的精确db结构?
  • 我还需要实体吗?
  • 或者我可以只使用DAO并执行以下操作:

    ObjectFromDb ob = dao.find(someProperty);

    鉴于ObjectFromDb只是一个没有单个JPA注释的常规POJO?

我把它谷歌了一会儿,但它似乎是太具体的问题......
感谢任何建议!

java dao jpa relational-database

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

每次操作都具有相同的结果

我正在尝试做这个操作

y = (float) ((-1/1300)*(xsec))+40;

其中xsec是第二个x.
有了这个功能double xsec = Math.pow((double)x, 2.0);
,经过这种方式定制浮动xsec = (float) xsec;,y就是浮动.

因此,当我进行第一次操作时,结果是每次40.0!我检查了xsec的变化,但即使xsec改变结果也一样,40.0!我想1/1300是一个十进制数字太多的操作.
怎么会发生这种情况?

java android

0
推荐指数
1
解决办法
71
查看次数