JSP Spring eval 是 parse int (为什么不解析 long)

在标签中,我使用 spring:eval 将 Id 传递为 ${status.value} ,为什么 spring 使用 parseInt 而不是 parseLong ?ps:${status.value}为submission.Id


jsp标签


<spring:bind path="id">



    <c:if test="${status.value ne null}">

    <spring:eval var="submission" expression="@myService.findById(${status.value})"/>

这是我的实体,我不确定实体是否会影响 spring:eval


@Entity

@Cacheable

@Audited

@DynamicInsert

@DynamicUpdate

@DisplayField("testNo")

@Table(name = "test_submission")

public class Submission extends TenantAuditableDynaObjectEntitySupport {


这个错误


org.springframework.web.servlet.tags.EvalTag.setExpression 

这就是我困惑为什么 spring:eval 会去 parseInt ?


<spring:eval var="submission" expression="@myService.findById(${status.value})"/>

这是我的界面


public interface EntityRepository<T extends Entity> extends JpaRepository<T, Long>, DynamicQueryEntityRepository<T> {


    @QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })

    T findById(Long id);


这就是我的接口扩展 JpaRepository 的内容


package org.springframework.data.jpa.repository;

我是春天的新手,请告诉我我错过了哪里设置或其他什么,谢谢。


繁星点点滴滴
浏览 29回答 1
1回答

交互式爱情

看来您的 status.value 是一个字符串。EL 会将内联数字视为整数,除非您将 L 放在末尾(如在 Java 源代码中)。最好的解决方案是修复您的状态对象,将值视为长整型;下一个最好的方法可能是在表达式中显式插入 parseLong 调用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java