【问题标题】:From Javascript Int to a Java String从 Javascript Int 到 Java 字符串
【发布时间】:2016-01-07 16:29:35
【问题描述】:

所以我在 Javascript 中有一个既可以是 String 也可以是 int 的变量,我需要将它发送到 java 方法。我虽然如此,因为将数字更改为字符串而不是相反更容易,所以我将变量设置为字符串。我要贴一些代码

这显然是javascript,变量valore是一个既可以是Int又可以是字符串的变量

$(".save").click(function() {

                var valore = $("#valore").val();                
                var connettore = $("#connettore option:selected").text().split(" ").join("");       

                $.get("select"+connettore+".do", {

                    nomecampo: $("#colonnaRiferim").val().toLowerCase(),
                    valore: valore

                }, function (data) {
                            for (var i = 0; i < data.connettore.length; i++) {
                                var conn = data.connettore[i];                      
                            }
                        }
                );  

这是Java函数

@RequestMapping("selectCompensi")
@ResponseBody
@Transactional
public ModelWrapper<List<TracciatoCompensi>> selectCompensi(@RequestParam String nomecampo, 
    @RequestParam String valore){       
    Session s = hibernateFactory.getCurrentSession();
    ModelWrapper<List<TracciatoCompensi>> resp = new ModelWrapper<List<TracciatoCompensi>>();
    Criteria c = s.createCriteria(TracciatoCompensi.class)
            .add(Restrictions.eq(nomecampo, valore));
    List<TracciatoCompensi> aList = (List<TracciatoCompensi>) c.list();

    Query query = s.createSQLQuery("INSERT INTO tracciato_compensi_clone (CODICEORDINE, CODICESERVIZIO, CODICEUNIVOCOCOMPONENTE, COEFFICIENTECANONEMESE, "+nomecampo+", compensi1, rev, mod_time, mod_user) ("
                +"SELECT CODICEORDINE, CODICESERVIZIO, CODICEUNIVOCOCOMPONENTE, COEFFICIENTECANONEMESE, "+nomecampo+", "+nomecampo+", rev, mod_time, mod_user FROM tracciato_compensi WHERE "+nomecampo+" = '"+valore+"')");                

    resp.put("connettore", aList);
    query.executeUpdate();
    return resp;
}

您可以忽略查询,这些东西有效,标准和其余部分也是如此。我的问题似乎很明显,如果 valore 是数字,那么函数崩溃, 我尝试在数字中添加一个随机字符,并尝试使用 toString() 将其转换为 javascript,但即使我使用 jquery 的 isNumeric() 函数并且它说它不是数字,它仍然会崩溃

【问题讨论】:

  • 你得到什么错误?
  • 如果 valore 为 "5" 或 5 不重要,则查询字符串将为 ...&valore=5
  • 把int改成String,JS中的parseInt(val),Java中的Integer.parseInt(val),其实并不难...
  • 1) 我收到此错误“java.lang.String cannot be cast to java.lang.Integer” 2) 正如我所说,问题不在于查询 3) 如果我没记错 parseInt将 String 更改为 int 而不是将 int 更改为 String

标签: javascript java jquery string int


【解决方案1】:

你要找的方法大概是String.valueOf(Object):

    String valore1 = "5";
    System.out.println(String.valueOf(valore1));

    int valore2 = 5;
    System.out.println(String.valueOf(valore2));

给予:

5
5

在控制台中。

【讨论】:

  • 我知道如何在 javascript 和 java 中将 int 转换为字符串,反之亦然,问题是 java 方法似乎看到一个整数,当我发送 $("#valore") .val();在 javascript 中给它,如果只有一个数字,它会发疯的。
猜你喜欢
  • 2012-11-25
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2014-01-25
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多