0

在控制器中,我有一个处理程序方法,它应该将一个字符串传递给一个名为 searchResultGraph.jsp 的 jsp

@RequestMapping(value = PATHELEM + "/searchGraph")
    public String handleGraph(Model model) {
        String write = writer.getWriteString();
        model.addAttribute("write", write);
        System.out.println(write);
        return PATHELEM + "/searchResultGraph";
    }

jsp 看起来像这样:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core"%>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>Graph View</title>
        <script type="text/javascript" src="<c:url value="/resources/js/json2.min.js" />"></script> <!-- ${pageContext.request.contextPath}/WebContent/WEB-INF/views/ -->
        <script type="text/javascript" src="<c:url value="/resources/js/cytoscapeweb.min.js" />"></script>
        <script type="text/javascript" src="<c:url value="/resources/js/AC_OETags.min.js" />"></script>


        <script language="JavaScript">
            window.onload=function() {
                        // network data could alternatively be grabbed via ajax
                 var xml = '${write}';

                        // init and draw
                        // initialization options
                            var options = {
                                swfPath: "CytoscapeWeb",
                                flashInstallerPath: "playerProductInstall"
                            };

                            var vis = new org.cytoscapeweb.Visualization("cytoscapeweb", options);

                            var draw_options = {
                                // your data goes here
                                network: xml,

                                // show edge labels too
                                edgeLabelsVisible: false,

                                edgeTooltipsEnabled:true,

                                // let's try another layout
                                layout: "circle",

                                // hide pan zoom
                                panZoomControlVisible: true
                            };

                            vis.draw(draw_options);

                        };
        </script>

        <style>
            /* The Cytoscape Web container must have its dimensions set. */
            html, body { height: 100%; width: 100%; padding: 0; margin: 0; }
            #cytoscapeweb { width: 100%; height: 100%; }
        </style>
    </head>
    <body>
        <h1>The Graph</h1>
        <h1>${write}</h1>
        <div id="cytoscapeweb">
             Cytoscape Web will replace the contents of this div with your graph.
             ${write}
        </div>
    </body>
</html>

但是当我尝试调用时没有显示任何内容${write}。我的方法中是否缺少某些内容?

谢谢!

4

2 回答 2

0

好的,我找到了解决方案:

options-tag 中的链接也必须是相对链接!

所以代替这个

var options = {
                swfPath: "CytoscapeWeb",
                flashInstallerPath: "playerProductInstall"
              };

我不得不写这个:

var options = {
                 swfPath: "<c:url value="/resources/js/CytoscapeWeb" />",
                 flashInstallerPath: "<c:url value="resources/js/playerProductInstall" />"
              };
于 2012-12-17T07:56:59.453 回答
0

检查您是否有一个名为 getWriteString(); 的方法 在你的bean类中,如果没有创建一个类名,在你的控制器中写入并实例化一个名为write的对象,然后将一些字符串传递给该对象并将其添加到模型中以由你的控制器返回,

Write write = new Write();
write.getWriteString();
于 2012-12-10T12:49:45.877 回答