我的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到某个地址的帖子请求,它会多次执行。
由于 萨姆
答案 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和下一章。