繁体   English   中英

如何将值从Spring Controller传递到jsp页面?(传递的值将用于初始化jsp页面中的javascript变量

[英]How to pass values from Spring Controller to jsp page?( the passed values is to be used to intialise javascript variables in jsp page

下面是我的Spring Controller代码。我的意图是将变量int a,int b,int c的值传递给Jsp页面ADMINRESULTS。

请注意,这些变量的值将用于在adminhome jsp页面中初始化javascript变量

@RequestMapping("/adminresults")  //this is called by form action. This does not refer to adminhome jsp page

    public String adminhome(Map<String, Object> model) {




        ArrayList<Block> blockChain = NoobChain.getBlockChain();
        Map<String, Integer> dataMap = new HashMap<String, Integer>();
        if (!blockChain.isEmpty()) {

            if (!NoobChain.isChainValid(blockChain)) {    //if not valid to print the data.
                model.put("tampermsg", "Unathorized acess detected and vote data is attacked.Correct values are ");

                dataMap = NoobChain.validChainData(blockChain);
            } else {
                dataMap = blockChain.get(0).getData();

            }
        }
        String blockchainJsonFromFile = new GsonBuilder().setPrettyPrinting().create().toJson(blockChain);
        System.out.println("after.." + blockchainJsonFromFile);

        model.put("message", "\n" + dataMap);
        System.out.println("Before extracting DATA is "+dataMap);//to check the format of data map
        int a=0;
        int b=0;
        int c=0;
        if (dataMap.containsKey("A"))
        {
            a = dataMap.get("A");
            System.out.println("value for key \"A\" is:- " + a);
        }
        if (dataMap.containsKey("B"))
        {
            b = dataMap.get("B");
            System.out.println("value for key \"B\" is:- " + b);
        }
        if (dataMap.containsKey("C"))
        {
            c = dataMap.get("C");
            System.out.println("value for key \"C\" is:- " + c);
        }
        model.put("a", a);
        model.put("b", b);
        model.put("c", c);



        return "adminhome"; //significance of this code is to return adminhome jsp page
    }

下面是来自adminhome jsp页面的代码片段

<html>
<head> </head>
<body>
<script type="text/javascript">

            var as=8,cs=1,bs=4;
</script>
</body>
</html>

我的意图是使用int a,int b,int c将上述变量初始化为bs,cs(来自上面提到的Spring Controller)

从控制器发送json对象,并分配给html上的隐藏变量,然后在Java脚本中使用该对象。 下面是代码,下面是一个sudo代码

内部控制器

List<Someclass> list = new ArrayList<>();
     Someclass someClass = new Someclass();
     someClass.setKey("a");
     someClass.setValue(1);
     list.add(someClass);
     Gson gson = new Gson();
     ModelAndView modelAndView = new ModelAndView("adminhome");
     modelAndView.addObject("list", gson.toJson(someClass));

JSP

  \t
 <%@ 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"%> <html> <script type="text/javascript"> $(document).ready(function() { var someClassJson = $('#"admin"'); list admins = JSON.parse(someClassJson.val()); for (var i = 0; i < admins.lenth; i++) { var item = admins[i]; console.log(someClass.key); console.log(someClass.value); } }); </script> <head> <title>Admin Example</title> <script src="jquery-1.11.3.min.js"></script> <script type="text/javascript" src="personScript.js"></script> </head> <body> <h1> <Admin/h1> <input type="hidden" id="admin" value="${list}"/> </body> </html> 

希望这会有所帮助。

找到了一个简单的答案,谢谢桑杰(Sanjay)的帮助,尼桑·拉吉(Nishant Raj)(也请查看他的代码,作为我的初学者,我无法实现他的代码)

在adminhome jsp页面中

<html>
<head> </head>
<body>
<script type="text/javascript">

            var aa="${a}",bb="${b}",cc="${c}";
</script>
</body>
</html>

上面的代码将从spring控制器中获取值到javascript变量aa,bb,cc等。

但是请注意,如果获取的值需要用作整数,则必须将其转换为当前类型的String类型。

它的代码是。

 <html>
    <head> </head>
    <body>
    <script type="text/javascript">

                var aa="${a}",bb="${b}",cc="${c}";
                var as=parseInt(aa),cs=parseInt(cc),bs=parseInt(bb);
    </script>
    </body>

</html>

如果需要,parseInt会将其转换为整数,以供将来使用。 谢谢大家,问题已解决:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM