JavaWeb_(Struts2框架)Ognl小案例查询帖子

 

 

  创建paste帖子表

JavaWeb_(Struts2框架)Ognl小案例查询帖子_第1张图片

 

 

 

CREATE TABLE `strutstest`.`paste` (
  `id` VARCHAR(50) NOT NULL,
  `answer` INT NULL,
  `offer` INT NULL,
  `title` VARCHAR(300) NULL,
  `content` VARCHAR(300) NULL,
  PRIMARY KEY (`id`));
创建paste表.sql

 

  添加假数据

  JavaWeb_(Struts2框架)Ognl小案例查询帖子_第2张图片

 

 

INSERT INTO `strutstest`.`paste` (`id`, `answer`, `offer`, `title`, `content`) VALUES ('1', '1', '1', '1title', '1content');
INSERT INTO `strutstest`.`paste` (`id`, `answer`, `offer`, `title`, `content`) VALUES ('2', '2', '2', '2title', '2content');
INSERT INTO `strutstest`.`paste` (`id`, `answer`, `offer`, `title`, `content`) VALUES ('3', '3', '3', '3title', '3content');
INSERT INTO `strutstest`.`paste` (`id`, `answer`, `offer`, `title`, `content`) VALUES ('4', '4', '4', '4title', '4content');
假数据.sql

 

 

  创建查询帖子

  Dao层

package com.Gary.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.Gary.domain.Paste;
import com.yl.lain.utils.C3p0DataSourceUtils;

public class PasteDao {

    public List findAllPaste() throws SQLException {
        
        QueryRunner runner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
        String sql = "select * from paste";
        
        return runner.query(sql, new BeanListHandler(Paste.class));
    }

}
PasteDao.java

 

  Domain层

package com.Gary.domain;

public class Paste {

    private String id;
    private Integer ansnum;
    private Integer offer;
    private String title;
    private String content;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public Integer getAnsnum() {
        return ansnum;
    }
    public void setAnsnum(Integer ansnum) {
        this.ansnum = ansnum;
    }
    public Integer getOffer() {
        return offer;
    }
    public void setOffer(Integer offer) {
        this.offer = offer;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    
}
Paste.java

 

  Service层

package com.Gary.service;


import java.sql.SQLException;
import java.util.List;

import com.Gary.dao.PasteDao;
import com.Gary.domain.Paste;


public class PasteService {

    public List findAllPaste() throws SQLException {
        PasteDao pasteDao = new PasteDao();
        return pasteDao.findAllPaste();

    }

    
    
}
PasteService.java

 

   Web层

package com.Gary.web;


import java.util.List;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.Gary.domain.Paste;
import com.Gary.service.PasteService;

public class PasteAction extends ActionSupport{

    
    public String getAllPaste() throws Exception {
        
        PasteService pasteService = new PasteService();
        List pasteList = pasteService.findAllPaste();
        
        ActionContext.getContext().put("pasteList", pasteList);
        System.out.println(pasteList);
        
        return "index";
    }

    
    
}
PasteAction.java

 

  struts.xml

xml version="1.0" encoding="UTF-8"?>
DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    
    
    
<struts>

    <constant name="struts.devMode" value="true">constant>
    <constant name="struts.enable.DynamicMethodInvocation" value="true">constant>

    
    <package name="MyPackage" namespace="/" extends="struts-default">
        
        <global-allowed-methods>regex:.*global-allowed-methods>
    
        
            
        <action name="LoginAction_*" class="com.Gary.web.UserAction" method="{1}">
            
            <result name="success" type="redirect">/index.htmlresult>
            
            <result name="error">/login.jspresult>
        action>


        <action name="LoginActionDefault" class="com.Gary.web.DefaultAction" method="execute">
        
        action>
        
        <action name="LoginActionImpl_*" class="com.Gary.web.ImplAction" method="{1}">
            
            <result name="defaultAction" type="chain">LoginActionDefaultresult>
            
            <result name="toLogin" type="redirectAction">
                <param name="actionName">LoginAction_loginparam>
                
                <param name="username">${username}param>
                <param name="password">${password}param>
            result>
        action>
    package>
    
    
    <package name="PastePackage" namespace="/" extends="struts-default">
        <global-allowed-methods>regex:.*global-allowed-methods>
        <action name="PasteAction_*" class="com.Gary.web.PasteAction" method="{1}">
            <result name="index">/index.jspresult>
        action>
    
    package>
    
    
    
    
    
struts>
struts.xml

 

JavaWeb_(Struts2框架)Ognl小案例查询帖子_第3张图片

 

  可以看到查询到4条帖子假数据,这4条数据已经通过ActionContext.getContext().put("pasteList", pasteList)存放到ActionContext域中。

  接下来通过Ognl与Struct标签,将帖子在前端动态的显示出来

                   <s:iterator value="pasteList" var="paste">s:iterator>
                        <s:property value="ansnum" />
                        如果要访问的数据是包装类型,我们要加#
                        <s:property value="#user.username"/>
                        <s:if test="ansnum%2==0">s:if>
                        <s:else>s:else>

  

  在index.jsp首页头部引入JSTL标签库

<%@taglib uri="/struts-tags" prefix="s"%>

 

  循环数据库中帖子表所有的数据

<s:iterator value="pasteList" var="paste">s:iterator>  

<s:property value="ansnum" />

 


                    
class="dvques">
class="quesCount">
class="count">
class="ques">回答数
class="quesContent">
class="quesTitle"> class="bean"> <span class="spanques">
class="qContent">
class="tags"> class="tag">excelclass="tag">程序
class="quesUser"> class="imguser" />
class="userName"> 张大值
class="liulan">浏览(9) 30分钟前

 

  通过访问http://localhost:8080/StrutsForum_Login/PasteAction_getAllPaste可以将数据库Paste帖子表的数据展示到首页index.jsp中JavaWeb_(Struts2框架)Ognl小案例查询帖子_第4张图片

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="css/index.css">
head>
<div class="dvhead">
    <div class="dvlogo">
        <a href="index.html">你问我答a>
    div>
    <div class="dvsearch">10秒钟注册账号,找到你的同学div>
    <div class="dvreg">
        已有账号,立即 <a href="login.html">登录a>
    div>
div>
<div class="dvContent">
    <div class="dvquesleft">

        <div class="dvqstitle">
            <image class="imgbean" src="images/bean.jpg"> <span class="qsTitle">问答span> <span class="back"><ab href="">《《返回上一页a>span>
        div>
        <div class="dvtabhead">
            <div class="tabheads tabcurrent">全部问题div>
            <div class="tabheads">我的问题div>
            <div class="tabheads">关注问题div>
            <div class="tabheads">问题标签div>
        div>
        <div class="tabContent">
            <div class="dvtags">
                <a class="curenttag">待解决a><span class="line">span><a>高分a><span class="line">span><a>新回答a><span class="line">span><a>已解决a>
            div>
            <div class="tab">
                <s:iterator value="pasteList" var="paste">
                    <div class="dvques">
                        <div class="quesCount">
                            <div class="count"><s:property value="id"/>div>
                            <div class="ques">回答数div>
                        div>
                        <div class="quesContent">
                            <div class="quesTitle">
                                <s:property value="offer"/>
                                <image src="images/bean.jpg" class="bean"> <span
                                 class="spanques"><s:property value="title"/>span>
                            div>
                            <div class="qContent"><s:property value="content"/>div>
                            <div class="tags">
                                <span class="tag">excelspan><span class="tag">程序span>
                            div>
                            <div class="quesUser">
                                <image src="images/0.gif" class="imguser" />
                                <div class="userName">
                                    张大值
                                    <div class="liulan">浏览(9) 30分钟前div>
                                div>

                            div>
                        div>
                    div>
                s:iterator>

            div>
            <div class="tab hidden">2div>
            <div class="tab hidden">3div>
            <div class="tab hidden">4div>
        div>
    div>
    <div class="dvquesright">
        <div>
            <buton class="btnques" onclick="location.href='add.html'">提个问题buton>
        div>
        <div class="dvorder">
            <div class="orderTitle">专家排行榜div>
            <div class="users">
                <image class="userface" src="images/0.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/1.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/2.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/3.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/4.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/5.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/6.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>


        div>

    div>

div>
<script type="text/javascript" src="js/jquery-1.7.2.min.js">script>
<script type="text/javascript">
    $(function()
    {

        $(".tabheads").click(function()
        {
            $(".tabheads").removeClass("tabcurrent").eq($(this).index()).addClass("tabcurrent");
            $(".tab").hide().eq($(this).index()).show();
        });
    });
script>
<body>
body>
html>
index.jsp

 

  如果我们需要放置的是一个对象

  在PasteAction.java中放置一个User对象

        User user = new User();
        user.setUsername("Gary");
        user.setPassword("111");
        
        ActionContext.getContext().put("user", user);

 

  前台通过访问user中的对象

                            <div class="quesUser">
                                <image src="images/0.gif" class="imguser" />
                                <div class="userName">
                                    <s:property value="#user.username"/>
                                    <div class="liulan">浏览(9) 30分钟前div>
                                div>
                            div>

 

  JavaWeb_(Struts2框架)Ognl小案例查询帖子_第5张图片

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="css/index.css">
head>
<div class="dvhead">
    <div class="dvlogo">
        <a href="index.html">你问我答a>
    div>
    <div class="dvsearch">10秒钟注册账号,找到你的同学div>
    <div class="dvreg">
        已有账号,立即 <a href="login.html">登录a>
    div>
div>
<div class="dvContent">
    <div class="dvquesleft">

        <div class="dvqstitle">
            <image class="imgbean" src="images/bean.jpg"> <span class="qsTitle">问答span> <span class="back"><ab href="">《《返回上一页a>span>
        div>
        <div class="dvtabhead">
            <div class="tabheads tabcurrent">全部问题div>
            <div class="tabheads">我的问题div>
            <div class="tabheads">关注问题div>
            <div class="tabheads">问题标签div>
        div>
        <div class="tabContent">
            <div class="dvtags">
                <a class="curenttag">待解决a><span class="line">span><a>高分a><span class="line">span><a>新回答a><span class="line">span><a>已解决a>
            div>
            <div class="tab">
                <s:iterator value="pasteList" var="paste">
                    <div class="dvques">
                        <div class="quesCount">
                            <div class="count"><s:property value="id"/>div>
                            <div class="ques">回答数div>
                        div>
                        <div class="quesContent">
                            <div class="quesTitle">
                                <s:property value="offer"/>
                                <image src="images/bean.jpg" class="bean"> <span
                                 class="spanques"><s:property value="title"/>span>
                            div>
                            <div class="qContent"><s:property value="content"/>div>
                            <div class="tags">
                                <span class="tag">excelspan><span class="tag">程序span>
                            div>
                            <div class="quesUser">
                                <image src="images/0.gif" class="imguser" />
                                <div class="userName">
                                    <s:property value="#user.username"/>
                                    <div class="liulan">浏览(9) 30分钟前div>
                                div>
                            div>
                        div>
                    div>
                s:iterator>

            div>
            <div class="tab hidden">2div>
            <div class="tab hidden">3div>
            <div class="tab hidden">4div>
        div>
    div>
    <div class="dvquesright">
        <div>
            <buton class="btnques" onclick="location.href='add.html'">提个问题buton>
        div>
        <div class="dvorder">
            <div class="orderTitle">专家排行榜div>
            <div class="users">
                <image class="userface" src="images/0.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/1.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/2.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/3.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/4.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/5.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>
            <div class="users">
                <image class="userface" src="images/6.gif" />
                <div class="dvuser">
                    <div class="userTitle">陈有龙div>
                    <div class="userdeital">大牛6级 豆:14006div>
                div>
            div>


        div>

    div>

div>
<script type="text/javascript" src="js/jquery-1.7.2.min.js">script>
<script type="text/javascript">
    $(function()
    {

        $(".tabheads").click(function()
        {
            $(".tabheads").removeClass("tabcurrent").eq($(this).index()).addClass("tabcurrent");
            $(".tab").hide().eq($(this).index()).show();
        });
    });
script>
<body>
body>
html>
index.jsp

 

  web层

package com.Gary.web;


import java.util.List;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.Gary.domain.Paste;
import com.Gary.domain.User;
import com.Gary.service.PasteService;

public class PasteAction extends ActionSupport{

    
    public String getAllPaste() throws Exception {
        
        PasteService pasteService = new PasteService();
        List pasteList = pasteService.findAllPaste();
        
        User user = new User();
        user.setUsername("Gary");
        user.setPassword("111");
        
        ActionContext.getContext().put("pasteList", pasteList);
        ActionContext.getContext().put("user", user);
        System.out.println(pasteList);
        
        return "index";
    }

    
    
}
PasteAction.java

 

  service层

package com.Gary.service;


import java.sql.SQLException;
import java.util.List;

import com.Gary.dao.PasteDao;
import com.Gary.domain.Paste;


public class PasteService {

    public List findAllPaste() throws SQLException {
        PasteDao pasteDao = new PasteDao();
        return pasteDao.findAllPaste();

    }

    
    
}
PasteService.java

 

  domain层

package com.Gary.domain;

public class Paste {

    private String id;
    private Integer ansnum;
    private Integer offer;
    private String title;
    private String content;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public Integer getAnsnum() {
        return ansnum;
    }
    public void setAnsnum(Integer ansnum) {
        this.ansnum = ansnum;
    }
    public Integer getOffer() {
        return offer;
    }
    public void setOffer(Integer offer) {
        this.offer = offer;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    
}
Paste.java

 

  dao层

package com.Gary.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.Gary.domain.Paste;
import com.yl.lain.utils.C3p0DataSourceUtils;

public class PasteDao {

    public List findAllPaste() throws SQLException {
        
        QueryRunner runner = new QueryRunner(C3p0DataSourceUtils.getDataSource());
        String sql = "select * from paste";
        
        return runner.query(sql, new BeanListHandler(Paste.class));
    }

}
PasteDao.java

 

xml version="1.0" encoding="UTF-8"?>
DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    
    
    
<struts>

    <constant name="struts.devMode" value="true">constant>
    <constant name="struts.enable.DynamicMethodInvocation" value="true">constant>

    
    <package name="MyPackage" namespace="/" extends="struts-default">
        
        <global-allowed-methods>regex:.*global-allowed-methods>
    
        
            
        <action name="LoginAction_*" class="com.Gary.web.UserAction" method="{1}">
            
            <result name="success" type="redirect">/index.htmlresult>
            
            <result name="error">/login.jspresult>
        action>


        <action name="LoginActionDefault" class="com.Gary.web.DefaultAction" method="execute">
        
        action>
        
        <action name="LoginActionImpl_*" class="com.Gary.web.ImplAction" method="{1}">
            
            <result name="defaultAction" type="chain">LoginActionDefaultresult>
            
            <result name="toLogin" type="redirectAction">
                <param name="actionName">LoginAction_loginparam>
                
                <param name="username">${username}param>
                <param name="password">${password}param>
            result>
        action>
    package>
    
    
    <package name="PastePackage" namespace="/" extends="struts-default">
        <global-allowed-methods>regex:.*global-allowed-methods>
        <action name="PasteAction_*" class="com.Gary.web.PasteAction" method="{1}">
            <result name="index">/index.jspresult>
        action>
    
    package>
    
    
    
    
    
struts>
struts.xml

 

转载于:https://www.cnblogs.com/1138720556Gary/p/11603654.html

你可能感兴趣的:(JavaWeb_(Struts2框架)Ognl小案例查询帖子)