小编axt*_*avt的帖子

Spring中的Spring绑定值

有没有办法将Spring绑定到地图中的值?

例如,我有一个Map<String,String>,我想弹出绑定其中的特定值.用户将在输入元素中键入内容,并且该输入元素的值将绑定到与地图中特定键关联的值.

java binding spring spring-mvc

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

JPA/Hibernate使用共享主键进行单向一对一映射

我正在努力获得与JPA(提供者:Hibernate)一起使用的单向一对一关系.在我看来,这不应该是一个麻烦,但显然JPA/Hibernate不同意这一点;-)

问题是我必须映射一个我无法更改的遗留模式,并且此模式在两个实体之间使用共享主键,同时它是一个实体的外键.

我创建了一个简单的TestCase:

DB如下所示:

CREATE TABLE PARENT (PARENT_ID Number primary key, Message varchar2(50));

CREATE TABLE CHILD (CHILD_ID Number primary key, Message varchar2(50),
CONSTRAINT FK_PARENT_ID FOREIGN KEY (CHILD_ID )REFERENCES PARENT (PARENT_ID));

CREATE SEQUENCE SEQ_PK_PARENT START WITH 1 INCREMENT BY 1 ORDER;
Run Code Online (Sandbox Code Playgroud)

父母(=一对一的拥有方)看起来如下:

@Entity
@Table(name = "PARENT")
public class Parent implements java.io.Serializable {       
    private Long parentId;
    private String message;
    private Child child;

    @Id
    @Column(name = "PARENT_ID", unique = true, nullable = false, precision = 22, scale = 0)
    @SequenceGenerator(name="pk_sequence", sequenceName="SEQ_PK_PARENT")
    @GeneratedValue(generator="pk_sequence", strategy=GenerationType.SEQUENCE) …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa one-to-one java-ee

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

将restful ajax请求映射到spring

我有这段代码:

@RequestMapping(value = "/test.json", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody Object[] generateFile(@RequestParam String tipo) {
    Object[] variaveis = Variavel.getListVariavelByTipo(tipo);
    return variaveis;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,它应该接受test.json?tipo = H的请求并返回Variavel []的JSON表示,但是当我提出这样的请求时,我得到:

HTTP状态406 -

类型状态报告

信息

description此请求标识的资源只能根据请求"accept"标题生成具有不可接受特征的响应()

通过使用以下函数,我可以得到预期的json:

@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo) {
    model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
}
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

java ajax rest spring spring-mvc

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

使用@Valid进行弹簧验证

我正在验证传入属性,但验证程序甚至可以捕获未注释的其他页面 @Valid

 @RequestMapping(value = "/showMatches.spr", method = RequestMethod.GET)
    public ModelAndView showMatchPage(@ModelAttribute IdCommand idCommand) 
//etc
Run Code Online (Sandbox Code Playgroud)

当我访问页面时,/showMatches.spr我收到错误org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Invalid target for Validator [cz.domain.controller.Controllers$1@4c25d793]: cz.domain.controller.IdCommand@486c1af3,
验证器不接受它,但我不想让它验证!通过此验证器:

 protected void initBinder(WebDataBinder binder) {
        binder.setValidator(new Validator() {
  // etc.
}
Run Code Online (Sandbox Code Playgroud)

validation spring spring-mvc

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

Spring MVC和JSR-303 hibernate条件验证

我有一个我要验证的表单.它包含2个地址变量.始终要验证address1,必须根据某些条件验证address2

public class MyForm {
    String name;
    @Valid Address address1;
    Address address2;
 }

public class Address {
    @NotEmpty   
    private String street;
}
Run Code Online (Sandbox Code Playgroud)

我的控制器自动验证并绑定我的表单obj

@RequestMapping(...)
public ModelAndView edit(
        @ModelAttribute("form")
        @Valid
        MyForm form,
        BindingResult bindingResult,
        ...)

        if(someCondition) {
            VALIDATE form.address2 USING JSR 303
Run Code Online (Sandbox Code Playgroud)

问题是,如果我使用LocalValidatorFactoryBean验证器,我无法重用Spring提供的BinidingResult对象.绑定不起作用,因为'result'的目标对象是'MyForm'而不是'Address'

validate(form.getAddress2(), bindingResult)   //won't work
Run Code Online (Sandbox Code Playgroud)

我想知道什么是标准/清洁方法来进行条件验证.

我正在考虑以编程方式在我的控制器中创建一个新的BindingResult.

final BindingResult bindingResultAddress2 = new BeanPropertyBindingResult(address2, "form");
validate(form.getAddress2(), bindingResultAddress2);
Run Code Online (Sandbox Code Playgroud)

但是我从bindingResultAddress2获得的错误列表无法添加到一般的'bindingResult',因为字段名称不正确('street'而不是'address2.street'),绑定将不起作用.

一些肮脏的方法是扩展BeanPropertyBindingResult以接受一些字符串附加到字段名称..你有更好的方法吗?

java validation spring spring-mvc bean-validation

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

在主要"肉"仍然是服务器端的webapps中组织JS代码的最佳方法是什么?

当使用像Django,Kohana,Rails等MVC web框架构建webapps时,我最初将没有JS驱动组件的应用程序放在一起,然后将它们添加为UI的"改进".

这种方法导致非侵入式JS,但我没有一个很好的"标准"方式来组织JS工作.我在这些应用程序中编写的大多数JS都是10-30行JQuery片段,它们与UI的某些特定部分挂钩.

到目前为止,我经常最终将这些内容与他们管理的UI部分结合在一起.这让我觉得很脏,我想把JS代码保存为python/php/ruby​​代码,我希望它是可测试的,我希望它可以重用.

在这样的设置中组织JS代码的最佳方法是什么,我们没有构建一个完整的JS客户端应用程序,主要的仍然是服务器端?

javascript architecture

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

如果不发生争用,则在读取时需要同步

考虑下面的代码狙击:

package sync;

public class LockQuestion {
    private String mutable;

    public synchronized void setMutable(String mutable) {
        this.mutable = mutable;
    }

    public String getMutable() {
        return mutable;
    }   
}
Run Code Online (Sandbox Code Playgroud)

在Time1线程Thread1将更新'mutable'变量.在setter中需要同步,以便将内存从本地缓存刷新到主内存.在时间Time2(Time2> Time1,没有线程争用)线程Thread2将读取mutable的值.

问题是 - 我需要在getter之前进行同步吗?看起来这不会导致任何问题 - 内存应该是最新的,Thread2的本地缓存内存应该由Thread1无效和更新,但我不确定.

java concurrency multithreading locking concurrent-programming

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

单例DAO对象可以吗?

考虑以下类的结构:

  1. BaseDAO 使用方法来填充PreparedStatement并从池中获取连接
  2. AccountDAO extends BaseDAOAccount通过JDBC 处理表.这个班是单身
  3. AccountService 女巫调用AccountDAO的方法是这样的: AccountDAO.getInstance().login(name, password).

AccountDAO是一个Spring bean,带有@Transactional插入一些数据的方法的注释.

这个可以吗?我认为单例DAO类可能会导致性能问题.可能最好在服务层类中使用一些弹簧注入?(我是Spring的新手,所以任何建议都会受到关注)

java spring dao

8
推荐指数
1
解决办法
6720
查看次数

在Spring中实例化泛型类bean的问题

我试图在Spring中实例化一个泛型类,但我得到以下异常:

bean的初始化失败; 嵌套异常是org.springframework.aop.framework.AopConfigException:无法生成类[class football.dao.jpa.GenericJpaDAO]的CGLIB子类:此问题的常见原因包括使用final类或不可见类; 嵌套异常是java.lang.IllegalArgumentException:Superclass没有null构造函数但没有给出参数:

这是Spring容器的XML配置:

<bean id="clubDAO" class="football.dao.jpa.GenericJpaDAO">
    <constructor-arg type="EntityManagerFactory" ref="entityManagerFactory"/>
    <constructor-arg type="Class" value="football.model.entities.ClubEntity"/>
    <constructor-arg type="String" value="ClubEntity"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

这是通用类:

public class GenericJpaDAO <T extends HavingID> {

  private EntityManager em;
  private Class entityClass;
  private String entityName;

  public GenericJpaDAO( Class entityClass, String entityName,
        EntityManagerFactory emFactory ) {
    this.entityClass = entityClass;
    this.entityName = entityName;
    em = emFactory.createEntityManager();
  }

  @Transactional
  public void create( T entity ) {
      em.persist( entity );
  }
  // more methods

}
Run Code Online (Sandbox Code Playgroud)

我不确定是什么导致了这一点.我很感激任何想法.

generics spring dependency-injection

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

访问另一个Web应用程序的会话

是否可以在J2EE应用程序(EAR)中配置两个单独的Web应用程序(WAR)来访问共享会话上下文?

更多信息:

我最终从EAR创建了一个共享类,它将所需信息存储在静态成员中.即使它看起来像是一个肮脏的黑客,这也成功了.

java session war httpsession

7
推荐指数
1
解决办法
4010
查看次数