当前位置: 首页 > 面试题库 >

Wicket http发布,从servletrequest获取原始数据?

哈扬
2023-03-14
问题内容

我尝试将一些数据发布到Wicket网页。如果数据采用表格形式,则效果很好。但是,我想用jQuery的ajax-
post发布数据。我无法在我的Page构造函数中获取此数据。

这是我的jquery命令:

$.ajax({
                    type: "post",
                    cache: false,
                    url: "http://localhost:8888/testjson",
                    data: JSON.stringify({"aap":"noot"),

                    contentType: 'application/json',
                    success: function(ydata){alert("aap");},
                    failure: function(errMsg) {alert(errMsg);},
                        contentType: false,
                    dataType: "json"
                });

/ testjson是已安装的WebPage。

public TestJsonApiPage( PageParameters pp )
{
    try
    {
        byte[] data = IOUtils.toByteArray( ( (ServletWebRequest) TestJsonApiPage.this.getRequest() ).getContainerRequest().getInputStream() );
    }
    catch ( IOException e )
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

这是构造函数。我看到的是输入流为空。然而,在调试的时候,我看到了原始数据,我在贴HttpServletRequestnewWebRequest我的WicketApplication

tl; dr 如何在Wicket页面中获取原始帖子数据?


问题答案:

似乎Page对后参数有所帮助。

我的问题的解决方案是使用资源。

    public class MyResource extends AbstractResource
    @Override
    protected ResourceResponse newResourceResponse( Attributes attributes )
    {

        ResourceResponse resourceResponse = new ResourceResponse();
        resourceResponse.setContentType( "text/json" );
        resourceResponse.setTextEncoding( "utf-8" );

        HttpServletRequest request = (HttpServletRequest) attributes.getRequest().getContainerRequest();

        try
        {
            this.json = IOUtils.toString( request.getInputStream() );
        }
        catch ( IOException e )
        {
            e.printStackTrace();
        }

        resourceResponse.setWriteCallback( new WriteCallback()
        {
            @Override
            public void writeData( Attributes attributes ) throws IOException
            {
                OutputStream outputStream = attributes.getResponse().getOutputStream();
                Writer writer = new OutputStreamWriter( outputStream );


                writer.write( MyResource.this.json );
                writer.close();
            }
        } );

        return resourceResponse;
    }


 类似资料:
  • 问题内容: 这真让我抓狂。我正在使用ASP.NET MVC。我有一个带有HttpPost动作的控制器,该动作充当另一个服务器(不在我的控制下)调用的回调URL。我想动态读取发布到它的JSON,而无需使用WebAPI或模型绑定。该URL还具有传递给它的查询字符串参数。 回调URL如下所示: http://domain.com/callback?secret=1234 我尝试使用以下方法阅读发布的输入

  • 问题内容: 在我的应用程序中,我使用来显示一些日志信息。因为我想突出显示文本中的某些特定行(例如错误消息),所以将设置为“ ”。这样,我可以设置文本格式。 现在,我创建一个JButton,将其内容复制到剪贴板中。这部分很简单,但是我的问题是,当我调用时,我得到了HTML代码,例如: 而不是只获取原始内容: 有没有办法只获取纯文本格式的内容?还是我需要自己将HTML转换为原始文本? 问题答案: 基于

  • 问题内容: 我在相当基本的android开发水平上。 我想从诸如“ http://www.google.com”的页面获取文本。(我将使用的页面只有文本,因此没有图片或类似的东西)所以,要明确:我想将页面上的文本写入应用程序中的字符串等。 我尝试了这段代码,但是我什至不知道它是否能满足我的要求。 无论如何我都无法收到任何文字。我应该怎么做? 问题答案: 从您提供的示例代码中,您甚至没有读取请求的响

  • 问题内容: 根据php手册或php:// input都不能与POST请求一起使用。 “ php:// input允许您读取原始的POST数据。它是内存占用较少的替代方法,并且不需要任何特殊的php.ini指令。php:// input不适用于。” 如何获取表格的原始数据? 问题答案: 直接回答:你不能那样做。只要PHP看到multipart / form-data Content- Type,它就

  • 介绍 有时候,浏览器会通过post发送很多数据。在webpy,你可以这样操作。 代码 class RequestHandler(object): def POST(self): data = web.data() # 通过这个方法可以取到数据

  • 我正试图通过改造发布原始数据。 我发现了许多解决方案,以POST JSON在身体使用齐射,但我发送的数据不是JSON。 当我从邮递员那里打电话时,我得到的是数据,但不是Android系统。 请告诉我怎么做。 我试图以字符串形式发送,但错误代码为500 我也在JsonObject中发送数据,但不工作... 这是我的密码。。