对页面文章过长的处理方法

当在 一个页面显示一个文章的内容时,如果文章太长,会造成页面无限高,样式很不好看,对此我有两种解决方法:
一,将内容放在<div>标签中,然后设置标签的style,具体<div style="overflow:auto;height:50px;">,这里的height是设置div的高度,然后设置当高度超过后会显示一个滚动条,不会破坏页面的整体效果
二,在后来通过分割字符来进行分页,代码如下:
前台代码
<div class="rBox artBox" style="margin-top:0;background-color:#f0f9ff;">
  <div class="tit02" style="background-image:url('images/tit_bg2.gif');">
      <b><a href="Default.aspx">首页</a>&gt;&gt;</b>
      <asp:Literal ID="litSubject" runat="server"></asp:Literal>&gt;&gt;
            <asp:Literal ID="litName" runat="server"></asp:Literal>
  </div>
  <h2><asp:Literal ID="litNewsName" runat="server" Text=""></asp:Literal></h2>
  <div style="font-size:14px;line-height:1.7em;padding:7px 10px 0 10px;"><asp:Literal ID="litContents" runat="server" Text=""></asp:Literal></div>
<hr style="width:98%; text-align:center;" />
  <div style="text-align:right; padding-right:20px; font-size:14px;"><asp:Literal ID="litPageNum" runat="server"></asp:Literal></div>
     <div class="clear"></div>
</div>
后台代码
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using BLL;
using Common;
namespace WebTrain
{
    public partial class ArticleDetails : System.Web.UI.Page
    {
        string id = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["id"]))
            {
                id =Request.QueryString["id"];
            }
            if (!string.IsNullOrEmpty(id))
            {
                if (!IsPostBack)
                {
                    loadData();
                }
            }
        }
        void loadData()
        {
            DataSet dsArt = BLL.Release_BLL.getReleaseByID(id);
            if (dsArt.Tables[0].Rows.Count > 0)
            {
                litNewsName.Text = dsArt.Tables[0].Rows[0]["newsName"].ToString();
                this.litContents.Text = OutputBySize(dsArt.Tables[0].Rows[0]["contents"].ToString().Replace("<div","").Replace("</div>","").Replace("<span","").Replace("</span>",""));
                DataSet dsSubject = BLL.Subject_BLL.getSubject(dsArt.Tables[0].Rows[0]["subjectID"].ToString());
                if (dsSubject.Tables[0].Rows.Count > 0)
                {
                    litSubject.Text = dsSubject.Tables[0].Rows[0]["subjectName"].ToString();
                    litName.Text = dsArt.Tables[0].Rows[0]["newsName"].ToString();
                }
            }
        }
        //分页
        public string OutputBySize(string p_strContent)
        {
            string m_strRet = p_strContent;
            int m_intPageSize = 1000;//文章每页大小
            int m_intCurrentPage = 1;//设置第一页为初始页
            int m_intTotalPage = 0;
            int m_intArticlelength = p_strContent.Length;//文章长度
            if (m_intPageSize < m_intArticlelength)
            {//如果每页大小大于文章长度时就不用分页了
                if (m_intArticlelength % m_intPageSize == 0)
                {
                    //set total pages count
                    m_intTotalPage = m_intArticlelength / m_intPageSize;
                }
                else
                {
                    //if the totalsize
                    m_intTotalPage = m_intArticlelength / m_intPageSize + 1;
                }
                if (Request.QueryString["pages"] != null)
                {
                    //set Current page number
                    try
                    {
                        //处理不正常的地址栏的值
                        m_intCurrentPage = Convert.ToInt32(Request.QueryString["pages"]);
                        if (m_intCurrentPage > m_intTotalPage)
                            m_intCurrentPage = m_intTotalPage;
                    }
                    catch (Exception ex)
                    {
                        m_intCurrentPage = m_intCurrentPage;
                    }
                }
                //set the page content 设置获取当前页的大小
                m_intPageSize = m_intCurrentPage < m_intTotalPage ? m_intPageSize : (m_intArticlelength - m_intPageSize * (m_intCurrentPage - 1));
                m_strRet = p_strContent.Substring(m_intPageSize * (m_intCurrentPage - 1), m_intPageSize);
                string m_strPageInfo = "<p></p>";
                for (int i = 1; i <= m_intTotalPage; i++)
                {
                    if (i == m_intCurrentPage)
                        m_strPageInfo += "<b>" + i + "</b>|";
                    else
                        m_strPageInfo += "<a href=ArticleDetails.aspx?id=" + Request.QueryString["id"] + "&pages=" + i + ">" + i + "</a>|";
                }
                //输出显示各个页码
                this.litPageNum.Text = m_strPageInfo;
            }
            return m_strRet;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,以下是Java实现发表文章功能的代码: 在静态下新建对应的页面: writeArticle.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>发表文章</title> </head> <body> <h1>发表文章</h1> <form action="/writeArticle" method="post"> <label for="title">标题:</label> <input type="text" id="title" name="title" required> <br> <label for="content">内容:</label> <textarea id="content" name="content" rows="10" cols="50" required></textarea> <br> <label for="author">作者:</label> <input type="text" id="author" name="author" required> <br> <input type="submit" value="发表"> </form> </body> </html> ``` article_success.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>发表成功</title> </head> <body> <h1>发表成功!</h1> <p><a href="/">返回首页</a></p> </body> </html> ``` article_fail.html ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>发表失败</title> </head> <body> <h1>发表失败!</h1> <p><a href="/">返回首页</a></p> </body> </html> ``` 在controller包下新建处理文章相关的业务类ArticleController,并定义处理发表文章方法writeArticle(HttpServletRequest request,HttpServletResponse response)。需要使用@Controller注解和@RequestMapping注解来指定请求的URL和请求方法。 ArticleController.java ```java package com.example.controller; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.example.entity.Article; @Controller public class ArticleController { @RequestMapping(value = "/writeArticle", method = RequestMethod.POST) public String writeArticle(HttpServletRequest request, HttpServletResponse response) { String title = request.getParameter("title"); String content = request.getParameter("content"); String author = request.getParameter("author"); if (title == null || title.trim().isEmpty() || content == null || content.trim().isEmpty()) { return "article_fail"; } Article article = new Article(title, content, author); try { FileOutputStream fos = new FileOutputStream("article/" + title + ".obj"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(article); oos.close(); fos.close(); } catch(IOException e) { e.printStackTrace(); return "article_fail"; } return "article_success"; } } ``` 在entity包下新建表示文章的对象Article并实现序列化接口。 Article.java ```java package com.example.entity; import java.io.Serializable; public class Article implements Serializable { private static final long serialVersionUID = 1L; private String title; private String content; private String author; public Article(String title, String content, String author) { this.title = title; this.content = content; this.author = author; } 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; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } } ``` 以上就是Java实现发表文章功能的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值