2016-03-04 24 views
0

我需要做什么才能在浏览器上呈现此代码?下面的代码目前在Eclipse Console上工作并呈现。我需要将这些代码与Tomcat等服务器一起使用,并使用localhost将其显示在浏览器上。请指教。Web浏览器上的Java ReactJs代码的服务器端渲染

import javax.script.ScriptEngine; 
import javax.script.ScriptEngineManager; 
import java.io.FileReader; 
public class Test { 
    private ScriptEngine se; 
    // Constructor, sets up React and the Component 
    public Test() throws Throwable { 
     ScriptEngineManager sem = new ScriptEngineManager(); 
     se = sem.getEngineByName("nashorn"); 
     // React depends on the "global" variable 
     se.eval("var global = this"); 
     // eval react.js 
     se.eval(new FileReader("../react-0.14.7/build/react.js")); 
     // This would also be an external JS file 
     String component = 
      "var MyComponent = React.createClass({" + 
      " render: function() {" + 
      "  return React.DOM.div(null, this.props.text)" + 
      " }" + 
      "});"; 
     se.eval(component); 
    } 
    // Render the component, which can be called multiple times 
    public void render(String text) throws Throwable { 
     String render = 
      "React.renderToString(React.createFactory(MyComponent)({" + 
      // using JSONObject here would be cleaner obviously 
      " text: '" + text + "'" + 
      "}))"; 
     System.out.println(se.eval(render)); 
    } 
    public static void main(String... args) throws Throwable { 
     Test test = new Test(); 
     test.render("I want to Display"); 
     test.render("This on a Browser like google chrome, using Tomcat server with Eclipse, currently it displays on Console in Eclipse."); 
    } 
} 
+0

从哪里java进入这张照片。请解释。您可以在后端使用java来生成/处理Json格式的数据。 – WitVault

+0

我在Eclipse IDE上运行该代码。 这里是我在Eclipse控制台上运行上述代码的结果

I want to Display
This on a Browser like google chrome, using Tomcat server with Eclipse, currently it displays on Console in Eclipse.
mayorsanmayor

回答

1

有许多可能性。一个相当常用的将是去REST服务。您可以使用JAX-RS或Spring REST支持托管REST服务。把你的网页作为一个简单的html页面。一旦这个页面被加载,它将进行REST调用,将获取数据并将其显示给用户。

+0

这完全回答了我的问题,我个人认为这是正确的路要走。谢谢@Akshay – mayorsanmayor

0

您可以使用JSP来做到这一点..

创建一个JSP页面。导入测试类。

您可以检查http://www.tutorialspoint.com/articles/run-your-first-jsp-program-in-apache-tomcat-server以了解如何使用JSP。

+0

谢谢,但我不想使用JSP,由于ReactJs用于页面呈现,JSP是旧的并且在DOM操作和页面呈现方面有限, ReactJs已经有助于无缝操作HTML DOM。在浏览器上显示的方法是我正在寻找的解决方案。 ReactJs + Java + Tomcat + HTML + Bootstrap CSS看起来像是一个可行或可行的解决方案,但是如何?我想我必须搜索更多。 – mayorsanmayor

+1

仅用于测试目的还是在生产中运行?您可以使用Jetty/Glassfish。在这两种情况下,您都应该拥有Java EE特性。 https://blog.idrsolutions.com/2015/04/top-10-open-source-java-and-javaee-application-servers/ – Vivasaayi