似乎我无法理解如何在新泽西实现一个定制的ViewProcessor。我有以下资源:
@Path("/events")
public class EventController extends AbstractController {
private static final Logger LOG = LoggerFactory.getLogger(EventController.class);
@Resource(name = "eventService")
private EventService eventService;
public void setEventService(EventService eventService) {
this.eventService = eventService;
}
@GET
@Produces(MediaType.TEXT_HTML)
public Viewable viewEventsAsHtml() {
Map<String, String> model = new HashMap<String, String>();
model.put("msg", "test");
return new Viewable("/events.jsp", model);
}
}由于我希望在"/WEB-INF/ views / jsp“中组织我的jsp视图,因此我扩展了JSPTemplateProcessor:
public class CJJspTemplateProcessor extends JSPTemplateProcessor {
private static final Logger LOG = LoggerFactory.getLogger(CJJspTemplateProcessor.class);
private final String basePath = "/WEB-INF/views/jsp";
public CJJspTemplateProcessor(@Context ResourceConfig resourceConfig) {
super(resourceConfig);
}
@Override
public String resolve(String name) {
String path;
if (!name.endsWith(".jsp")) {
name += ".jsp";
}
path = basePath + name;
LOG.debug("resolving " + name + " to " + path);
return path;
}
}但是,当我导航到事件资源时,我得到了一个404,尽管我可以看到TemplateProcessor在日志文件中为jsp解析了正确的路径。
plx帮助:)
发布于 2010-05-21 04:42:52
完成此操作不需要自定义TemplateProcessor,只需在web.xml中的filter元素中添加以下内容即可。
<filter>
<init-param>
<param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name>
<param-value>/WEB-INF/views/jsp</param-value>
</init-param>
</filter>https://stackoverflow.com/questions/2873892
复制相似问题