Как передать значения из Spring Controller на страницу jsp? (Переданные значения должны использоваться для инициализации переменных javascript на странице jsp - PullRequest
0 голосов
/ 20 февраля 2019

Ниже приведен мой код Spring Controller. Я намерен передать значения переменных int a, int b, int c странице Jsp ADMINRESULTS.

Обратите внимание, что значения этих переменных должны бытьиспользуется для инициализации переменных javascript в странице adminhome jsp

@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>

Я намерен инициализировать вышеуказанные переменные как, bs, cs, с помощьюint a, int b, int c (из упомянутого выше контроллера пружины)

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Нашел простой ответ, спасибо, Санджай, за помощь, а также Нишант Радж (проверьте его код, поскольку я новичок, я не смог реализовать его код)

На странице adminhome jsp

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

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

Приведенное выше извлекает значения из переменных jaascript aa, bb, cc и т. Д. Из контроллера пружины.

Но обратите внимание, что если выбранные значения необходимо использовать как целое, это должно бытьпреобразовано. В настоящее время оно имеет строковый тип.

Код для него.

 <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 преобразует его в целое число для использования в некоторых будущих функциях при необходимости.Спасибо всем, проблема решена:)

0 голосов
/ 20 февраля 2019

Отправьте объект 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

  	
<%@ 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>

надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...