2012-12-10 22 views
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是这样的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}。我的方法中是否有缺失?

谢谢!

+0

没有什么不对的,你在这里给出的代码。我只能要求你确保getWriteString()实际上返回一个非空字符串 –

+0

字符串不是空的......这将是一个简单的解决方案! ;) – bethlis

+0

尝试使用c:out代替。从逻辑上讲,它不应该有所作为,但你永远不会知道..:P –

回答

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" />" 
       }; 
0

检查是否有一个方法命名为getWriteString();在你bean类,如果不创建一个类的名字写在你的控制器实例化一个名为写对象,然后通过一些字符串成,并添加到模型返回,通过您的控制器,

Write write = new Write(); 
write.getWriteString(); 
+0

我有一个名为getWriteString()的方法;它会给我一些例外,如果我没有它......唯一的问题是,他不显示我的字符串。但它必须在某个地方,因为如果不是,它会给我一个错误,如:没有找到与名称写入的输入 – bethlis

+0

尝试使用'ModelMap'来代替。用'addObject()'方法 –