在spark-java中,req
对象没有RequestDispatcher
吗?
如何在Spark-java中转发请求而不是执行res.redirect?
我尝试做
req.raw().getRequestDispatcher("/forwardPath").forward(req,res);
但出现编译错误,提示
错误:(89,82)java:不兼容的类型:spark.Request不能为 转换为javax.servlet.ServletRequest
答案 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域对象。因此,错误消息。