我正在使用Scala和servlet,我正在尝试使用JEE6注释来配置用Scala编写的servlet。我遇到了嵌套注释的问题。 java代码看起来像:
@WebServlet(name = "ExampleServlet", urlPatterns = {"/example"},
initParams = {@WebInitParam(name="param1", value="value1"),
@WebInitParam(name="param2", value="value2")}
)
public class ExampleServlet extends HttpServlet {
}
我正在尝试的scala代码就像:
@WebServlet(name = "ExampleServlet", urlPatterns = Array("/example"),
initParams = Array(@WebInitParam(name="param1", value="value1",
@WebInitParam(name="param2", value="value2")))
class ExampleServlet extends HttpServlet {
}
但是当我尝试编译它时,我得到以下内容:
[ERROR] /Users/brian/workspace/dsg-scalatra/src/main/scala/org/mbari/dsg/RotatorServlet.scala:15:错误:非法启动简单表达
[INFO] initParams = Array(@WebInitParam(name =“imageDirectory”,value =“/ assets / images / rotator”)))
错误指向@WebInitParam注释。
有关如何使用嵌套在Scala中@WebServlet注释中的@WebInitParam的任何建议吗?
答案 0 :(得分:4)
您必须使用new
关键字来实例化另一个注释中的任何注释:
@WebServlet(name = "ExampleServlet", urlPatterns = Array("/example"),
initParams = Array(new WebInitParam(name="param1", value="value1"),
new WebInitParam(name="param2", value="value2")))
class ExampleServlet extends HttpServlet {
}