将spark-java请求转发到另一个资源

时间:2018-06-30 12:07:09

标签: spark-java requestdispatcher

在spark-java中,req对象没有RequestDispatcher吗? 如何在Spark-java中转发请求而不是执行res.redirect?

我尝试做

req.raw().getRequestDispatcher("/forwardPath").forward(req,res);

但出现编译错误,提示

  

错误:(89,82)java:不兼容的类型:spark.Request不能为   转换为javax.servlet.ServletRequest

2 个答案:

答案 0 :(得分:0)

原因:

您收到此错误是因为forward(req,res)需要 javax.servlet.http.HttpServletRequest javax.servlet.http.HttpServletResponse 实例的实例,其中Spark提供 spark.Request spark.Response 的实例。

解决方案:

Spark提供了一种不同的方法,而不是使用这种方式进行请求分配。

您可以使用文档http://sparkjava.com/documentation#redirects

中提供的方法

res.redirect(“ / forwardPath”,301);

对我有用。请让我知道这是否也适合您。

答案 1 :(得分:0)

我想您需要将req.raw和res.raw提供给在请求分派器上调用的forward方法。您当前正在为其提供Spark域对象。因此,错误消息。