jhello框架-交互
发布日期:2021-08-28 19:37:22 浏览次数:3 分类:技术文章

本文共 2051 字,大约阅读时间需要 6 分钟。

hot3.png

上篇《jhello框架-起步》讲了一个简单的例子,输入url,跳转到指定的页面,本篇介绍一下如何接受值和传递值到页面。

本篇做个留言板的例子,只演示如何接受值和传递值,就不做数据库操作了。

还记得上篇中提到的步骤:

  1. 创建类,加上@controller,声明是controller类

  2. 编写方法,加上@At,建立url映射

  3. 编写jsp,建立视图

现在我们做个首页,用来显示10条数据,基本的框架一样,不同在与controller的返回值由String变成了ModelAndView类

@Controllerpublic class MessageBookController {        @At("/")    public ModelAndView index(){        List
> data = prepareListData();        Model model = new Model();        model.put("messageList", data);return new ModelAndView("list.jsp", model);    }    private List
> prepareListData() {        List
> list = new ArrayList
>();        for(int i = 0; i < 10; i ++){            Map
 map = new HashMap
();            map.put("id", "id"+i);            map.put("message", "message1");            list.add(map);        }return list;    }}

这里解释一下ModelAndView类,其作用在与返回视图和数据类型,经由框架处理后把数据呈现在视图上。

在jhello中Model类就是HashMap的一个子类,泛型为<String,Object>。

在jsp使用jstl展现数据

        
    
        
        
    
    
        
            
            
        
            
id message
${item.id } ${item.message }

最后展现的效果

接下来讲讲如何接受其他页面传递过来的参数。

学过servlet的童鞋都知道doGet和doPost方法有两个参数HttpServletRequest,HttpServletResponse。jhello是基于servlet开发出来的框架,所以依然支持这样的写法。

在controller里添加一个方法

@At(value = "/list",method = HttpMethod.POST)public ModelAndView list(HttpServletRequest req,HttpServletResponse resp){    List
> data = prepareListData();    Map
 map = new HashMap
();    map.put("id", "id11");    map.put("message", req.getParameter("message"));    data.add(map);    Model model = new Model();    model.put("messageList", data);return new ModelAndView("list.jsp", model);}

其作用就是在之前10条记录之上添加一条记录

(注意一下@At的参数,这里添加了一个参数,method,这个参数用来标明当前url接受的是POST还是GET方法,@At默认是GET方法)

在list.jsp页面添加一个form,用来提交数据

    
    

其中ctx是框架内置的常量,其值是当前工程url路径。

完成后界面是

点击提交后就会看到最下方添加了一条test的记录

本篇所讲到的代码会上传到oschina的git上,有兴趣的童鞋可以去拉下来运行一下

转载于:https://my.oschina.net/u/557735/blog/285059

转载地址:https://blog.csdn.net/weixin_33969116/article/details/92003297 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何删除windows服务
下一篇:A标签中通过href和onclick传递的this对象

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月19日 14时10分18秒