• JSP入门2


    1. CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的缩写,一般应用有这四项也就足够了。 我们这里的例子是对联系人信息进行CRUD操作。 
    2. javabean是把一些操作集合在一起写成一个java类,想要进行什么操作直接调用这个类里的方法就行。 
    咱们这里使用javabean的地方有两处,一个是链接数据库并进行CRUD操作,另一个把每条数据都写 成一个类。

    对于CRUD应用,有一些大家默认的命名来表示不同的操作。

     1. list.jsp。读取所有信息并显示到页面上,这个是CRUD中Read(读取)。

    2. create.jsp。进入添加联系信息的页面,等待用户输入信息。 save.jsp。接收用户提交的信息,添加到数据库中。 这两步对应CRUD中的Create(创建)。

    3. edit.jsp。进入修改联系信息的页面,等待用户修改信息。 update.jsp。接收用户提交的信息,修改数据库中对应的信息。 这两步对应CRUD中的Update(更新)。

    4. remove.jsp。删除用户选择的信息。这步对应CRUD中的Delete(删除)。 

    JSP页面跳转

    <jsp:forward page="list.jsp"/>

    初始化Bean对象

    <jsp:useBean class="anni.ContactDao" id="contactDao" scope="application"/>

    它会先去scope定义的作用域application中取得contactDao对应的对象,这个contactDao正是标签中定义的id,转换的对象类型则是标签中class属性的值。 

    我们每获得一条信息就把它放入pageContext中。之所以这样做,是为了在下面使用el表达式显示信息。 

    el表达式的一个特点就是必须放到作用域里才能调用,如果使用Contact contact = (Contact) list.get(i);而不放到pageContext中,后面的${contact.username}就无法找到contact了。

    这里还要提及el表达式的进一步用法,${contact.username}实际上得到的是contact.getUsername()返回的结果。这里有一个默认的转换规则,假设有一个getUsername()方法,我们先要去掉开头的get,然后将get后的那个字母小写,得到的username就是与el表达式中对应的部分。

    有趣的是${contact.username}仅仅与getUsername()方法对应,无论contact有没有String username这个变量。如果我们想使用${contact.nameAndSex},只要写一个public String getNameAndSex()方法返回我们想要的数据即可,不需要添加String nameAndSex;变量。 

    jsp:setProperty是新事物了,它的作用就是为某个javabean设置数据。

    <jsp:setProperty name="contact" property="*"/> 

    之前我们已经使用jsp:useBean创建了一个contact实例,现在我们通过name="contact"设置这个实例的数据,property可以指定一个属性,比如property="username",这个jsp动作实际上与下面的代码等价

    contact.setUsername(request.getParameter("username")); 

    contact.setSex(request.getParameter("sex")); 

    contact.setEmail(request.getParameter("email")); 

    contact.setQq(request.getParameter("qq")); 

    contact.setDescn(request.getParameter("descn"));

    只要它们的名称与contact中的方法对应(这次是set开头的方法了),jsp:setProperty就可以自动为它们进行赋值,转换的规则与get的方法名是类似的

    点击“修改”的时候,id便附加到url后了。 
    <a href="edit.jsp?id=${contact.id}">修改</a>          
    edit.jsp中获得id的值,根据id从contactDao获得对应的联系信息contact,再将contact放到pageContext供后面的el表达式使用。 
    <jsp:useBean class="anni.ContactDao" id="contactDao" scope="application"/> 

    <% 
        String id = request.getParameter("id"); 
        Contact contact = contactDao.get(Long.parseLong(id)); 

        pageContext.setAttribute("contact", contact); 

    %> 

  • 相关阅读:
    delphi不同版本字符串类型的演化(要支持基于firemonkey的app调用,字符串最好使用olevariant类型)
    IdHttpServer实现webservice(130篇DataSnap文章)
    hdu 1809 求SG函数
    delphi中无类型文件读写
    delpi中的RTTI初试
    后台调用外部程序的完美实现(使用CreateDesktop建立隐藏桌面)
    delphi之完美Splash方案(在TfrmMain.FormCreate里不断调用TfrmSplash显示加载进度文字,并且及时Update显示)
    查看内存数据的函数(ByteToHex和ByteToBin,最终都变成String)
    SQLsever2008 远程连接错误 linq
    delphi 利用HTTP的POST方法做个在线翻译的小工具 good
  • 原文地址:https://www.cnblogs.com/Dhouse/p/3382515.html
Copyright © 2020-2023  润新知