2017-03-05 7 views
0

私はSpring MVCを初めて使用しています。私は自分のウェブ上にMatlab WebFigureを表示したいと思います。私はMatlab javabuilderを使用して自分のプログラムをJavaクラスにデプロイします。 JavaクラスはWebfigureを返します。私のWebプロジェクトのコントローラーで、WebFigureのhtml文字列をモデルに追加したいと思います。そして、私はそれを表示したいと思います:matlab webでspring mvc

HelloWorldPage.jspで
Object[] result = transformace.transformace(4); 
MWJavaObjectRef ref; 

ref = (MWJavaObjectRef)result[0]; 
obrazek = (WebFigure)ref.get(); 

webFigures = new WebFigures("WebFigures",getServletContext()); 
String webFig = webFigures.getHtmlEmbedString(obrazek,"obrazek", "session", "", "", ""); 
model.addObject("webFig", webFig); 

私は姿を取得し、それをdislayたい:

${webFig} 

* .jspというページにwebFigを参照するときしかし、私はエラーを取得します:

Spring MVC Hello World Example 

hello world mod2 
HTTP Status 404 - /spring2-mvc-xml-hello-world/WebFigures/interface 

type Status report 

message /spring2-mvc-xml-hello-world/WebFigures/interface 

description The requested resource is not available. 

Apache Tomcat/6.0.48 

お願いできますか?

源: HelloWorldPage.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<%@ taglib prefix="wf" uri="http://www.mathworks.com/builderja/webfigures.tld" %> 
<html> 
<body> 
    <h1>Spring MVC Hello World Example</h1> 

    <h2>${msg} mod2</h2> 
     <p> 

     ${webFig} 
     </p> 
</body> 
</html> 

HelloWorldController.java

package com.mkyong.common.controller; 

import com.mathworks.toolbox.javabuilder.MWJavaObjectRef; 
import com.mathworks.toolbox.javabuilder.webfigures.WebFigure; 
import com.mathworks.toolbox.javabuilder.webfigures.WebFigures; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.AbstractController; 
import transformace.Transformace; 

public class HelloWorldController extends AbstractController { 


    @Override 
    protected ModelAndView handleRequestInternal(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 

       Transformace transformace; 

       HttpSession session = request.getSession();    

       WebFigure obrazek= (WebFigure)session.getAttribute("obrazek"); 
       WebFigure obrazek1 = (WebFigure)session.getAttribute("obrazek1"); 
       WebFigure obrazek2=(WebFigure)session.getAttribute("obrazek2"); 
       WebFigure obrazek3=(WebFigure)session.getAttribute("obrazek3"); 

     ModelAndView model = new ModelAndView("HelloWorldPage"); 

       transformace = new Transformace(); 


       Object[] result = transformace.transformace(4); 
       MWJavaObjectRef ref; 

       ref = (MWJavaObjectRef)result[0]; 
       /* Z reference získáme data metodou get a uložíme je do webfigury. */ 
       obrazek = (WebFigure)ref.get(); 
       /* Nakonec nastavíme HttpSession. */ 
       session.setAttribute("obrazek", obrazek); 
       ref = (MWJavaObjectRef)result[1]; 
       obrazek1 = (WebFigure)ref.get(); 
       session.setAttribute("obrazek1", obrazek1); 
       ref = (MWJavaObjectRef)result[2]; 
       obrazek2 = (WebFigure)ref.get(); 
       session.setAttribute("obrazek2", obrazek2); 
       ref = (MWJavaObjectRef)result[3]; 
       obrazek3 = (WebFigure)ref.get(); 
       session.setAttribute("obrazek3", obrazek3);  

       WebFigures webFigures; 
       webFigures = new WebFigures("WebFigures",getServletContext()); 

       model.addObject("obr0", obrazek); 
       model.addObject("obr1", obrazek1); 
       model.addObject("obr2", obrazek2); 
       model.addObject("obr3", obrazek3); 

       String webFig = webFigures.getHtmlEmbedString(obrazek,"obrazek", "session", "", "", ""); 

       model.addObject("webFig", webFig); 

     model.addObject("msg", "hello world"); 

     return model; 
    } 

} 

webfigures.tld

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> 
<taglib> 
<tlibversion>1.0</tlibversion> 
<jspversion>1.1</jspversion> 
<shortname>WebFigures</shortname> 
<info>MATLAB Builder for Java WebFigures Tag library</info> 
<tag> 
<name>web-figure</name> 
<tagclass>com.mathworks.toolbox.javabuilder.webfigures.JspWebFigureTag</tagclass> 
<!--Body content can have a value of 
empty: no body 
JSP: body that is evaluated by container, then possibly 
processed by the tag 
tagdependent: body is only processed by tag; JSP in body is not 
evaluated. 
--> 
<bodycontent>JSP</bodycontent> 
<info>Embeds a live figure frame in an HTML document.</info> 
<attribute> 
<name>root</name> 
<required>true</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
<attribute> 
<name>width</name> 
<required>false</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
<attribute> 
<name>height</name> 
<required>false</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
<attribute> 
<name>style</name> 
<required>false</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
<attribute> 
<name>name</name> 
<required>true</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
<attribute> 
<name>scope</name> 
<required>true</required> 
<rtexprvalue>true</rtexprvalue> 
</attribute> 
</tag> 
</taglib> 

MVC-ディスパッチャ-servlet.xml

私はこれを解決した

のpom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mkyong.common</groupId> 
    <artifactId>spring2-mvc-xml-hello-world</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Spring 2 MVC</name> 

    <properties> 
     <jdk.version>1.6</jdk.version> 
     <spring.version>2.5.6</spring.version> 
     <jstl.version>1.2</jstl.version> 
     <servletapi.version>2.5</servletapi.version> 

    </properties> 

    <dependencies> 

     <!-- Spring MVC framework --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <!-- JSTL --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <version>${jstl.version}</version> 
     </dependency> 

     <!-- for compile only, your container should have this --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>${servletapi.version}</version> 
      <scope>provided</scope> 
     </dependency> 
    <dependency> 
     <groupId>test</groupId> 
     <artifactId>test123</artifactId> 
     <version>123</version> 
      <scope>compile</scope> 
      <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>transformace2</groupId> 
     <artifactId>transformace21</artifactId> 
     <version>1</version> 
    </dependency> 
    </dependencies> 

    <build> 

     <plugins> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>${jdk.version}</source> 
        <target>${jdk.version}</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.eclipse.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>9.2.11.v20150529</version> 
       <configuration> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <webApp> 
         <contextPath>/spring2</contextPath> 
        </webApp> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>2.9</version> 
       <configuration> 
        <downloadSources>true</downloadSources> 
        <downloadJavadocs>true</downloadJavadocs> 
        <wtpversion>2.0</wtpversion> 
        <wtpContextName>spring2</wtpContextName> 
       </configuration> 
      </plugin> 

     </plugins> 

    </build> 

</project> 
+0

移動、ファイルを提供春サーバの例を見つけるファイルを変更して行われます。あなたは本当にここでmatlabについて話す必要はありません。関連性のないものです。コメント用の – Snickers3192

+0

Thx。私はその記事を編集した。私はMatlabプログラムからクラスを作成するためにMatlab Javabuilderを使用することに言及しなかった。 MatlabプログラムはWebfigureを返します。 Webfigure関数getHtmlEmbedStringを使用すると、文字列を取得する必要があります。この文字列は、WebページにMatlab Figureとして表示されます。しかし、これをモデルに追加してから* .jspページから呼び出すと、これは機能しません。なぜそれが動作しないのか分かりますか? Thx a lot –

+0

私が言ったようにどこかで例を見つけてください。あなたがmkeyongから1つを見つけたように見えます...だから私はあなたの中に別のものを探しても何の問題も見ません。私のアドバイスは、SpringBootを使用しているものを見つけることです。 @ResponseBodyを使用して文字列HTMLを返すことができます。まだあなたはMatlabについて話していますが、質問を投稿するときに手元にある問題に集中してください。ここだけではなく、私がやっていることが働いていることです。もしあなたがそれ以上のことをしたら、あなたはあなたが求める答えをもって右側の関連する質問を見るでしょう。そうでなければあなたは混乱しています。 – Snickers3192

答えて

0

が、私はこれを解決するために時間を費やす

<servlet>   
     <servlet-name>WebFigures</servlet-name>   
     <servlet-class>com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet</servlet-class> 
    </servlet> 

    <servlet-mapping>   
     <servlet-name>WebFigures</servlet-name>   
     <url-pattern>/WebFigures/*</url-pattern>  
    </servlet-mapping> 

web.xmlの

に欠けているこれらのエントリーがありました、うまくいけば、これは誰もが同じ問題に対処するのに役立ちます!

完全なweb.xmlファイル:

<web-app id="WebApp_ID" version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 


<display-name>Spring Web MVC Application</display-name> 

<servlet> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
    <servlet>   
     <servlet-name>WebFigures</servlet-name>   
     <servlet-class>com.mathworks.toolbox.javabuilder.webfigures.WebFiguresServlet</servlet-class> 
    </servlet> 


<servlet-mapping> 
    <servlet-name>mvc-dispatcher</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
</servlet-mapping> 

    <servlet-mapping>   
     <servlet-name>WebFigures</servlet-name>   
     <url-pattern>/WebFigures/*</url-pattern>  
    </servlet-mapping> 

関連する問題