【问题标题】:Jersey problem with URL binding to JSPs与 JSP 绑定的 URL 的泽西岛问题
【发布时间】:2011-08-01 03:49:17
【问题描述】:

我正在尝试通过 Jersey 将 URL 绑定到 JSP。我正在尝试制作一个笑话网站,我想:

(1) /jokes = 笑话列表 (2) /jokes/213 = id 为 213 的笑话页面

但是,(2)似乎不起作用,我不知道。

这是我的带有 jersey servlet 的 web.xml

    <servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.moesjokes.site.server.resources</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.Redirect</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.config.feature.ImplicitViewables</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <!--<url-pattern>/jokes</url-pattern>-->
    <url-pattern>/jokes/*</url-pattern>
</servlet-mapping>

这是我的资源:

    @Path("/")
public class Jokes {

  @GET
  @Path("/jokes")
  @Produces("application/xml")
  public Viewable getAll() {

    JspPage jsp = new JspPage(Pages.WELCOME);
    JspGlobalWidget global = jsp.getGlobal();

    JokesWidget jokes = new JokesWidget(jsp);
    jokes.setContents( new ContentServcies().getLatestContents(1, 20) );

    Map<String, String> map = new HashMap<String, String>();
    map.put("jokes", jokes.toHtml());

    return new Viewable("/jsp/jokes/index.jsp", map);
  }


  @GET
  @Path("/jokes/{id}/*")
  @Produces("application/xml")
  public String get(@PathParam("id") String id) {

    return "<test>" + id + "</test>";
  }

}

我做错了什么还是...?我使用的是 Jetty 6.1,Jersey 1.6

任何帮助将不胜感激 =)

【问题讨论】:

    标签: java jetty jersey web.xml


    【解决方案1】:

    改变你的路径

    @Path("/jokes/{id}/*")
    

    到

    @Path("/jokes/{id}")
    

    我认为前者的格式不正确。

    【讨论】:

    • oi,如果生活可以如此简单,我也尝试过测试。但最后我需要 {id}/* 因为网址是 /jokes/123/yo-mama-is-so-...
    • 好的。好吧,前者的格式不正确,在这里指定:jsr311.java.net/nonav/releases/1.0/javax/ws/rs/Path.html。也就是说,试试@Path("/jokes/{id}/{title}")。
    猜你喜欢
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2014-10-06
    • 1970-01-01
    • 2011-08-02
    • 2011-10-14
    • 2015-01-05
    相关资源
    最近更新 更多