需求:
1.信息聚合展示;
2.快速建站;
3.网站布局可以定制;
以上需求虽然就简单几个字,但是对于我这个web新手还是有些头晕~
晚上花了些时间构思了一个简单的“山寨版”模型。
实现的功能:
1.后台控制页面布局和样式问题;
2.信息模块化展示;(方式1:jsp:include)
实现思路:
1.项目文件结构
主要注意WebRoot中的文件结构:
css里面存放多套样式文件;
image和css配套使用;
web-inf中page中存放多套布局文件(jsp布局,没采用freemarker等模版引擎,不熟!);在page中有个module专门存放模块的文件(简单理解首页上的那些“豆腐块”);
2.模块化展示数据
像每个子页面的公共部分(例如:导航、版权等)可以采用jsp:include的方式公用,因此这块可以作为模块放到module中作为一个组件,在需要的地方引入。
但是这种方式也可以展示后台传过来了数据信息(信息一般存储在list中),例如:
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 首页里面的信息展示“豆腐块” -->
<div id="index_list_top" ></div>
<div id="index_list_mid" >
<c:forEach var="info" items='${param.info}'>
${ info } <br>
</c:forEach>
</div>
<div id="index_list_bottom" ></div>
这个模块文件遍历了传入的list,并做出了简单的布局展示。这里采用了jstl、el表达式。
在引入这个模块的页面只要如下操作即可:
<!-- 使用jsp:include 包含页面内容 -->
<jsp:include page="/WEB-INF/page/style01/module/index_list.jsp">
<jsp:param value='${requestScope.news}' name="info"/>
</jsp:include>
其中${requestScope.news}是利用el从request中取出相应的数据。因此只要这里“注入”的数据就可以复用模版的布局。
同样可以利用c标签import这个模块,代码如下:
<!-- 使用c:import 包含页面内容 -->
<c:import url="/WEB-INF/page/style01/module/index_list.jsp">
<c:param name="info" value='${requestScope.notices}' ></c:param>
</c:import>
3.后台控制布局和样式
其实后台取出了数据,要改变他们给用户的呈现,主要就是选择对应的布局文件(在该项目中存在于web-inf/page/中),和对应的样式文件(在该项目中存在与webRoot的css和image文件夹中)。
注意这里目录的特点:
css:WebRoot\css\style01
iamge:WebRoot\image\style01
jsp:WebRoot\WEB-INF\page\style01
如果我们对应开发了style02,并且里面给出不同的布局和样式文件,那么后台动态制定到不同的目录就带到了这个目的。
例如:在action中定义一个属性(style),用来指定呈现的布局和样式。(这个属性在正式项目中应该从配置文件中读取而来)
那么在action配置中可以动态配置result,用来“导向”指定的布局文件:
<action name="index" class="com.manta.index.action.IndexAction">
<result>/WEB-INF/page/${style}/index.jsp</result>
</action>
那么在页面上通过其也可以指定样式文件:
<link rel="stylesheet" type="text/css" href="css/${requestScope.style}/index.css">
效果:(简单用颜色模块展示)
第一种样式:
通过修改action中的style属性,既可以得到第二种样式:
如果想开发新的样式怎么办?
1.只需要开发对应的jsp模版、css样式文件即可;
--------------------------------------------
需要持续改进的地方:
1.模块的配置(即模块的数量、位置可配置)。
2.模块的展示使用自定义标签来实现,可能更加方便。
欢迎大家提出意见~给出指导!
分享到:
相关推荐
在本项目中,"java开发简易人员管理系统" 是一个基于J2EE技术栈构建的应用,主要目的是实现对人员信息的有效管理和操作。系统采用MySQL作为后端数据库存储数据,提供了基本的增删查改功能,虽然规模不大,但包含了...
在进行J2EE开发以构建GIS(地理信息系统)数据建库系统时,我们需要理解几个核心概念和技术要点。本文将深入探讨简易快速J2EE开发GIS数据建库的基本思想。 首先,J2EE(Java 2 Platform, Enterprise Edition)是...
在本项目中,我们关注的是一个使用C++编程语言开发的简易银行卡管理系统。这个系统旨在帮助用户方便地管理和跟踪他们的银行账户活动,如存款、取款、转账等基本功能。以下是对这个系统的详细分析和相关知识点的阐述...
总结来说,【简易的留言板模块系统】涉及了前端交互设计、后端开发、数据库管理、权限控制、安全防护以及运维等多个方面的知识。它是Web开发基础技能的一个典型应用场景,也是学习和实践全栈开发的绝佳起点。通过...
总的来说,这个简易教务管理系统项目是一个很好的C语言实践示例,它展示了如何运用基本的编程概念和数据结构来解决实际问题。通过学习这份开发文档和源代码,不仅可以提升C语言编程技能,还能了解教务管理系统的一般...
7. 数据持久化:所有用户数据,如用户信息、动态、评论等,都需要通过数据库进行持久化存储,保证信息的安全性和可靠性。 总结起来,这个简易微博系统虽然没有使用复杂的框架,但通过.NET和C#的结合,充分展示了Web...
"MFC简易学生信息系统"是一个基于Microsoft Foundation Class (MFC) 库开发的简单学生信息管理应用程序。MFC是微软提供的一套C++类库,它为Windows应用程序开发提供了丰富的功能,包括窗口、对话框、控件、文档视图...
【简易JSP信息管理系统】是一种基于Java服务器页面(JSP)技术构建的管理信息系统,它主要用于数据存储、处理和展示,适用于小型企业或个人进行日常信息管理。在本系统中,用户可以实现对数据的增删改查操作,提供了...
4. 设计模式:在开发简易OA系统时,可能会采用MVC(Model-View-Controller)设计模式,将业务逻辑(Model)、视图呈现(View)和用户交互控制(Controller)分离,有利于代码结构的清晰和模块化。 5. 开发工具与...
《简易社区管理信息系统》可能包含了用户管理、事务处理、资源调度、数据分析等多个功能模块。其中,用户管理模块可能涉及居民信息录入、权限分配等,确保信息安全且有针对性;事务处理模块则可能涵盖报修、投诉、...
"简易管理系统"是一个基于Java开发的应用程序,旨在提供一种简单、高效的管理工具,可能涵盖了诸如数据存储、用户操作、权限控制等核心功能。在Java这个强大的面向对象编程语言的支持下,此类系统通常具有良好的可...
《简易论坛系统——Java Web开发详解》 在IT行业中,Web开发是一项至关重要的技能,而构建一个论坛系统是学习和实践这项技能的经典案例。本文将深入解析“简易论坛系统”的核心知识点,涵盖从需求分析到实际编码的...
【简易人员管理系统(纯Java版)】是一款基于Java编程语言开发的、专注于人员信息管理的软件系统。系统设计简洁高效,旨在提供一个易用的平台,实现对人员的增删查改等基本操作,同时也引入了管理员账号的概念,以...
《简易网上书店系统设计与实现》是一篇详细阐述基于B/S架构的网上书店系统开发的论文,该系统采用ASP编程语言和ACCESS数据库进行构建。网上书店系统作为一种商业信息系统,其核心在于提供便捷的网络购物体验,使用户...
总结来说,这个“简易学生信息管理系统”是一个典型的C语言编程实践案例,它展示了如何利用C语言的强大功能构建一个实用的数据管理系统。对于初学者,通过分析和学习这个系统,可以提升对数据结构、文件操作以及基本...
Python有内置的csv模块,可以方便地读取和写入这类文件,用于系统中图书数据的持久化存储。 接下来,"untitled.py"应该是项目的主程序文件。在这个文件中,开发者可能使用了Python的Tkinter库来创建GUI界面。...
《亮剑.NET简易银行系统》是一个基于.NET框架的C#开发实战项目,旨在提供一个基础的银行业务模拟平台。此项目可能涵盖了多个IT知识点,包括但不限于数据库设计、用户界面交互、事务处理、安全性控制以及多层架构的...
综上所述,《易语言简易银行系统》是学习数据库操作、易语言编程以及银行业务流程的一个实例,它涵盖了基础的数据库连接与断开、用户交互、数据处理等多个关键点,对提升编程和项目开发能力具有积极的实践意义。...
PB开发的简易进销存系统凭借其易用性和灵活性,能够有效提升中小企业的生产管理效率,降低运营成本,是这类企业信息化建设的有力工具。在实际使用中,用户还需要根据自身业务特点对系统进行适当的定制和优化,以充分...
2. 可扩展性:设计模块化,便于后期增加新功能或整合其他系统。 3. 用户体验:优化界面设计,提供清晰的导航和反馈,确保用户操作流畅。 总结,“简易考试系统”是信息技术与教育相结合的产物,它通过科学的设计和...