【问题标题】:Server-side rendering of Java, ReactJs code on a web browser在 Web 浏览器上对 Java、ReactJs 代码进行服务器端渲染
【发布时间】:2016-03-04 05:56:31
【问题描述】:

我需要做什么才能在浏览器上呈现它?下面的代码目前在 Eclipse 控制台上运行和呈现。我需要将此代码与 Tomcat 之类的服务器一起使用,并使用 localhost 在浏览器上显示它。请指教。

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.");
    }
}

【问题讨论】:

  • java 从哪里进入这张图片。请解释。当然,您可以在后端使用 java 来生成/操作 Json 格式的数据。
  • 我正在 Eclipse IDE 上运行该代码。这是我在 Eclipse 控制台中运行上述代码得到的结果
    我想显示
    这在像谷歌浏览器这样的浏览器上,使用带有 Eclipse 的 Tomcat 服务器,目前它显示在 Eclipse 的控制台上。

标签: javascript java eclipse tomcat reactjs


【解决方案1】:

有很多可能性。一种非常常用的方法是使用 REST 服务。您可以使用 JAX-RS 或 Spring REST 支持来托管 REST 服务。将您的网页作为一个简单的 html 页面。加载此页面后,它将进行 REST 调用,获取数据并将其显示给用户。

【讨论】:

  • 这完美地回答了我的问题,我个人认为这是正确的方法。谢谢@Akshay
【解决方案2】:

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

创建一个 JSP 页面。导入 Test 类。

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

【讨论】:

  • 谢谢,但是我不想用JSP,因为页面渲染有ReactJs,JSP老了,在DOM操作和页面渲染方面受限,ReactJs已经帮助无缝操作HTML DOM。在浏览器上显示它的一种方法是我正在寻找的解决方案。 ReactJs + Java + Tomcat + HTML + Bootstrap CSS 似乎是一个可能/可行的解决方案,但如何?我想我必须搜索更多。
  • 它仅用于测试目的还是在生产中运行?您可以使用 Jetty/Glassfish。在这两种情况下,您都应该接受 Java EE 特性。 blog.idrsolutions.com/2015/04/…
猜你喜欢
  • 2023-04-01
  • 2023-04-09
  • 1970-01-01
  • 2012-11-28
  • 1970-01-01
  • 2021-10-26
  • 2018-07-20
  • 2015-03-01
相关资源
最近更新 更多