`
helian
  • 浏览: 17196 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Grails开发随笔系列(二)抛砖引玉,手机版界面解决方案

阅读更多

人心不足蛇吞象,做网站做到一大半时看到了人人网的手机版广告,上去看了一下,也想在goal98 team manager上弄个手机版玩玩。这样球队管理员可以第一时间把球队帐户明细显示给成员们,大家清清楚楚嘛~~~

 

搜索了一下关于给手机浏览器做网页的经验之谈。决定页面采取xhtml mobile profile的格式。这样普通电脑浏览器也可以浏览。grails默认的sitemesh layout是main,我增加一个专门给手机版用的mobile layout。

 

 

页面头应该是这样的:

 

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
        "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

 

 

由于本人比较懒,很多地方都没有完全遵照规范,如果把http://team.goal98.com/m/login/auth页面拿去http://validator.w3.org/验证的话,错误一大堆。不过还是能正常显示啦。

 

由于是给手机用的layout,css也是专用的,本人无耻地从renren扒了些css来。鄙视我吧。如果设计得好的话,同一界面的不同版本应该这样做

 

普通浏览器版:

 

<head>
  <meta name='layout' content='main'/>
  <title><g:message code="login.title" default="Team Manager Login"/></title>

</head>

<body>
  <g:render template="/login/auth"/>
</body>

 

 手机浏览器版:

 

 

<head>
  <meta name='layout' content='mobile'/>
  <title><g:message code="login.title" default="Team Manager Login"/></title>

</head>

<body>
  <g:render template="/login/auth"/>
</body>

 

 

/login/_auth.gsp里面的页面元素应该能在两套css下都能显示正常。不过本人没做到这么干净,好多地方为了在手机界面减少显示元素还是用了不同的界面,没有都公用template。

 

做手机版重要的一步是把用户引导到手机版上。人人网的做法是直接用了不同的域,http://m.renren.com/

我用了个比较垃圾的做法,就是在登录界面url用http://team.goal98.com/m/login/auth加一个m。在urlmapping中

加了个规则:

 

        "/m/$controller/$action?/$id?" {
            mobile = true
            constraints {
                // apply constraints here
            }
        }

 

 等于是加了个mobile的parameter在请求里,然后在一个filter里把session打上标记。

 

 

def filters = {
        all(controller:'*', action:'*') {
            before = {
                if(params.mobile){
                    session.mobile = true
                }
                
            }
            after = {
                
            }
            afterView = {
                
            }
        }
    }

 

 之后跟手机版页面有关的controller显示页面时回去判断这个标记

 

 

if(session.mobile)
            view = "m-"+"$view"

        render view: view, model: [postUrl: postUrl]

总之非常之垃圾。希望能得到大家的建议。 

至于手机版的页面设计,就是遵循少图片,小容量的原则。内容都给我float到一边去。看起来就稍微美了。


  • 描述: 手机版登录界面
  • 大小: 29.5 KB
分享到:
评论
1 楼 helian 2009-11-12  
后来想了想。也许可以把domain model和service controller等提取成一个plugin,然后写两个主grails项目分别引用这个插件。两套grails项目中用不同的view分别显示普通版和手机版。发布时就发布两个应用。这样在controller里就不去要去判断了。不只这样有没有问题,准备试试。

相关推荐

    grails开发指南第二版

    grails 开发指南第二版 Who is this book for? This book is for everyone who is looking for a more agile approach to web development with a dynamic scripting language such as Groovy. This includes a ...

    grails 开发文档 合辑

    Apress.Beginning.Groovy.and.Grails.From.Novice.to.Professional.Jun.2008 grails_programming Grails1.1中文文档-----2009.3.25 Grails入门指南(第二版) Groovy经典入门 Programming Groovy 2 合集,超实惠哦

    grails 开发框架-1

    grails1.0开发框架1 类似于ruby on rails的框架。

    grails 开发框架-4

    grails1.0开发框架4 类似于ruby on rails的框架。

    grails快速开发web

    - **轻松入门系列**:介绍了如何搭建 Grails 开发环境、通过与 Java 的比较快速掌握 Groovy 语法,以及 Grails 实战基础。 - **实战技巧**:包括 GORM (Groovy Object Relational Mapping) 的使用、如何在 Grails 中...

    eclipse开发grails插件

    对于Grails开发,我们需要的是Eclipse中的Grails插件,它能够提供对Grails项目的创建、运行、调试等一系列功能。 **Grails**是基于Groovy语言的全栈式Web开发框架,它借鉴了Ruby on Rails的设计理念,提供了快速...

    Grails从入门指南(第二版)

    《Grails从入门指南(第二版)》是一本专为初学者设计的全面教程,旨在帮助读者快速掌握Grails框架的基础知识和高级特性。Grails是一个基于Groovy语言的开源Web应用开发框架,它简化了Java平台上的开发过程,提供了...

    grails敏捷开发

    **Grails 敏捷开发** Grails 是一个基于 Groovy 语言的开源Web应用框架,设计用于快速开发、高效构建动态、敏捷的Web应用程序。...参考《Grails入门指南(第二版)》这本书,可以进一步深化对Grails的理解和应用。

    Grails开发之(Rest教程).pdf

    标题中提到的"Grails开发之(Rest教程)"表明本文是一份关于Grails框架下进行RESTful服务开发的教程。Grails是一个使用Groovy语言编写的高生产力的框架,其使用约定优于配置的理念,允许快速开发Web应用程序。...

    Grails权威指南 中文版

    《Grails权威指南 中文版》是一本专注于Grails框架和Groovy语言的中文版技术书籍。本书的作者是Grails项目负责人Graeme Keith Rocher,他将自己对于Grails框架的深刻理解和使用经验编纂成书,以便向读者全面介绍这一...

    转: Eclipse下Grails开发环境搭建步骤

    在本文中,我们将详细探讨如何在Eclipse集成开发环境中搭建Grails开发环境。Grails是一个基于Groovy语言的开源Web应用程序框架,它简化了Java平台上的Web应用开发流程。通过Eclipse,我们可以获得强大的开发工具支持...

    grails开发

    Grails是一种基于Java平台的开源Web应用框架,它利用Groovy语言的强大特性和简洁语法,为开发者提供了一种高效、灵活的开发环境。本篇文章将深入探讨Grails开发的基础知识,帮助初学者快速掌握Grails的精髓。 1. **...

    Grails入门指南中文第二版.pdf

    《Grails入门指南中文第二版》是一本专为初学者设计的Grails框架教程,旨在帮助读者快速掌握Grails开发的基础知识和技能。Grails是一个基于Groovy语言的开源Web应用框架,它采用模型-视图-控制器(MVC)架构模式,极...

    Grails权威指南第二版

    Grails权威指南第二版 Grails是一个搭建在动态语言 Groovy 之上的开源 MVC 快速 Web 开发框架。使用 Grails 可以提高 Web 开发的效率,降低 Web 开发的复杂度。 本书由Grails项目负责人Graeme Keith Rocher编写,极...

    Grails企业web应用开发与部署

    二、Grails开发环境 1. 开发工具:Eclipse、IntelliJ IDEA等IDE都支持Grails开发,其中Grails插件提供了一键创建项目、运行和调试等功能。 2. 安装配置:首先需要安装Java Development Kit(JDK),然后通过Grails...

    使用Grails快速开发Web应用

    ### Grails快速开发Web应用:知识点详解 #### Grails框架概览 Grails是一个基于Groovy语言构建的开源MVC(Model-View-Controller)Web开发框架,以其高效的开发速度和简洁的代码著称。其核心优势在于: 1. **快速...

    Grails从零开始开发项目二

    在本节中,我们将深入探讨"Grails从零开始开发项目二"的相关知识点,这是一个关于使用Grails框架进行Web应用开发的学习过程。Grails是一种基于Groovy语言的开源Web应用框架,它以其高效的开发速度和丰富的插件生态...

Global site tag (gtag.js) - Google Analytics