返回字符串而不是在wicket中呈现页面

时间:2014-01-30 09:53:04

标签: java string url wicket mount

我的Java应用程序似乎遇到了问题。

所以我有这个wicket web应用程序,我有一个应用程序类,其中有一些已安装的URL。我还在其中一个网址中有一个小程序。问题是,当我加载applet并期望String返回applet时,这个applet将请求发送给applet参数中指定的url。所以基本上它希望挂载的url返回一个字符串,并且在wicket中我猜它只是试图将url渲染到一个网页中,这不是我想要的。我想我必须覆盖网页中的方法或什么?

现在我对wicket相当新,所以我真的不知道该怎么做。例如,我使用Spring制作了相同的软件,我可以使用@RequestMapping("/url")映射网址,并使用@ResponseBody将返回类型更改为字符串。这可能是一个愚蠢的问题,但我无法找到解决方法。我已经阅读了很多wicket文档,并试图找到类似的问题,但没有找到任何东西。

编辑:所以我必须能够读取applet发送的POST请求参数,并将String发送回applet。我不知道applet是如何工作的,所以我所知道的是它发送了一个带有attribtes到某个地址的帖子请求,它会多次执行。

由于 萨姆

2 个答案:

答案 0 :(得分:3)

如另一个答案所述,您可以使用自定义资源执行此操作。

但是,通过创建WebPage的子类并覆盖renderPage方法,您也可以或多或少地在您的问题中描述:

public class TextPage  extends WebPage {

    @Override
    public final void renderPage() {
        WebResponse response = (WebResponse) getResponse();
        response.setContentType("text/plain");
        response.write("Hello World!");
    }

}

当然,正如您的问题所述,您还需要获取applet发送的POST参数,并根据这些参数生成响应文本,而不是仅仅使用常量字符串......

您可以从请求中获取这些参数:

    Request request = getRequest();
    IRequestParameters postParameters = request.getPostParameters();
    StringValue testParam = postParameters.getParameterValue("test");
    String testParamValue = testParam.toString();

所有这一切都在某种程度上绕过了通常的Wicket做事方式,因为Wicket试图结束对请求和响应的访问,这样你就不必直接处理它们,但它可能适合你的情况

答案 1 :(得分:1)

您必须安装自定义Resource

mountResource("myStringResource", customResourceReference);

关于自定义资源并安装它们,您可以在此处阅读: http://wicket.apache.org/guide/guide/resources.html#resources_7和下一章。