js中由var获取的值转转换为long值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中由var获取的值转转换为long值相关的知识,希望对你有一定的参考价值。

<input type="text" id='sj' name='sj' value='1279849429000' />
比如:var sj = $("#sj").val(); 获取到的js 怎么转换为long值??

js中没有long值,都是统一的number类型,你可以用parseInt()转化为整型,用parseFloat转化为小数 参考技术A 不用转换,直接用就行了。都是虚类型,它会自己转换的

如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;

【中文标题】如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;【英文标题】:How do I fix error: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; 【发布时间】:2019-09-05 22:03:30 【问题描述】:

我正在开发一个项目经理 - 网络应用程序,该应用程序允许您以会员身份登录并加入不同类型的项目。成员可以参与多个项目。项目和成员实体通过成员资格实体连接。每次登录的成员加入项目时,都会创建一个新的成员实体。

但是,在会员单击 joinProject.html 页面上的加入按钮后,我无法创建新的会员资格。我不断收到以下错误消息:

(type=Bad Request, status=400).
Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "saveMembership"

目标是将已登录的成员添加到项目中。可以在 projectDetails.html -page 上看到新成员资格。

我正在使用 Spring Boot、Thymeleaf 和 JPA。我有一种感觉,这是一件非常简单和愚蠢的事情,但我就是找不到问题所在。 :(

如果您需要查看更多代码或信息,我很乐意提供。

感谢您的宝贵时间!

这是我尝试使用的 MembershipCreatorObject 类来将所需的数据输入我的控制器:

public class MembershipCreatorObject 

    private String id;
    private String username;
    private String jobDescription;

    public MembershipCreatorObject() 
        super();
    

    public MembershipCreatorObject(String id, String username, String jobDescription) 
        super();
        this.id = id;
        this.username = username;
        this.jobDescription = jobDescription;
    

    public String getId() 
        return id;
    

    public void setId(String id) 
        this.id = id;
    

    public String getUsername() 
        return username;
    

    public void setUsername(String username) 
        this.username = username;
    

    public String getJobDescription() 
        return jobDescription;
    

    public void setJobDescription(String jobDescription) 
        this.jobDescription = jobDescription;
    

这是我的控制器:


    @RequestMapping(value= "/joinProject/projectId")
    public String joinProject(@PathVariable("projectId") Long urlId, Model model) 

        model.addAttribute("mObject", new MembershipCreatorObject());

        model.addAttribute("project", projectRepo.findByProjectId(urlId));

        return "joinProject";
    

    @RequestMapping(value="/saveMembership", method=RequestMethod.POST)
    public String saveMembership(MembershipCreatorObject mObject) 

        String id = mObject.getId();

        Long idConverted = Long.parseLong(id);

        String username = mObject.getUsername();

        String description = mObject.getJobDescription();

        Project projectToAdd = projectRepo.findByProjectId(idConverted);

        Member memberToAdd = memberRepo.findByUsername(username);

        Membership membershipToAdd = new Membership(description, memberToAdd, projectToAdd);

        membershipRepo.save(membershipToAdd);

        return "redirect:/projectCatalog";
    

这是 joinProject -html 文件。

    <h1>Join Project</h1>

    <h4 th:inline="text">Logged in as: [[$#httpServletRequest.remoteUser]]</h4>

    <form th:object="$mObject" th:action="@saveMembership" action="#" style="padding: 20px;" method="POST">

        <input th:field="*id" />
        <!-- th:value="$project.projectId" -->

        <input type="text" th:field="*username" />
        <!-- th:value="$#httpServletRequest.remoteUser" -->

        <label>What will you be working on?</label>
        <input type="text" th:field="*jobDescription" style="display: block;" />

        <input type="submit" value="Join" style="display: block; margin-top:10px; width:70px;">

    </form>

【问题讨论】:

【参考方案1】:

看起来您正在尝试将文字字符串“saveMembership”转换为 long,而不是 long 的字符串表示形式,例如:

String str = "12323445664546544564974";
Long lng = Long.parseLong(str);

这是我基于异常堆栈跟踪的假设,其中指出“NumberFormatException:对于输入字符串:“saveMembership””

【讨论】:

【参考方案2】:

我不是 html 或 thymeleaf 专家,但我认为您在 html 中输入了错误的内容。 我相信当您点击submit 时,您的代码会将POST 请求发送到/joinProject/saveMembership 而不是/saveMembership。您可以在浏览器中轻松测试(检查 POST 请求的 URL 是什么)

【讨论】:

以上是关于js中由var获取的值转转换为long值的主要内容,如果未能解决你的问题,请参考以下文章

出现错误:无法反序列化对象。无法将 java.lang.String 类型的值转换为 long

js将long日期格式转换为标准日期格式

如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;

com.google.firebase.database.DatabaseException:无法将 java.lang.String 类型的值转换为 long

C# List<long> 如何转换成 List<string> ?(求高手支招)

JS文本输入框直接转换输入字母比如小写字母a输入自动变A的问题