您的位置:首页 > Web前端 > JavaScript

wml页面的一些设计经验

2004-10-14 09:18 351 查看
为了支持低版本的wap浏览器:
wml文件书写的部分经验如下:

1.使wml文件支持wml 1.1版本,不是使用wml1.2或以上版本中有的而wml1.1中没有的内容
wml 1.1的DTD在以下网址可以查看:
http://www.phone.com/dtd/wml11.dtd 

声明头:<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

2.模拟器的使用。
由于openwave SDK6.22  和 Opera 这两款浏览器 的容错性较好,可以在开发时候使用,
在测试时候,可以使用UP.Simulator,它的浏览器版本较低,只支持wml1.1 ,可以检查出不遵循wml1.1的情况。

3.wml文件开头的问题:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" >
<%@ page contentType="text/vnd.wap.wml;charset=UTF-8"%>
<%@ page import .....
其中
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" >
一定要放到整个wml文件的最上行

以下是一个例子,其中<%@ page import="java.sql.*"%>等纯粹为了示例,程序中并没有用到:

其中
<head>
   <meta http-equiv="Cache-Control" content="max-age=0" />
</head>
说明页面不缓存
我们用JSP中开发WEB的时候,用到过JSP防止缓存的写法:
<%
//防止IE缓存
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setDateHeader("Expires",0);
%>
----------------------------------------------------
WML页面内容如下:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" >
<%@ page contentType="text/vnd.wap.wml;charset=UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.vansl.db.*"%>
<wml>
<head>
   <meta http-equiv="Cache-Control" content="max-age=0" />
</head>
<card id="index"  >

<p align="center">#城市追女仔#
</p>
<p align="left">
<img src="<%=request.getContextPath()%>/pic/top.png" alt="ss"/><br/>
城市中的各个角落,一种交错的情绪暗流涌动...夜幕降临了,5类个性的漂亮女孩性感出场!5种职业选择和追女行动决定第一帅哥的你出局还是上垒!是男人就来吧,真正的较量刚刚开始... <br/>
  <anchor title="确定"><go href="<%=request.getContextPath()%>/index/checkpass.jsp"/>1进入游戏</anchor><br/>
  <anchor title="确定"><go href="<%=request.getContextPath()%>/bbs/bbs1.jsp?mv=1"/>2游戏bbs</anchor><br/>
  <anchor title="确定"><go href="<%=request.getContextPath()%>/index/explain.jsp"/>3游戏说明</anchor><br/>
</p>
</card>
</wml>

4.jsp中Redirect有时测试不通过, 可以改成wml中的ontimer,详细格式如下,其中timer value="1" 说明

<card id="index"  >
<onevent  type="ontimer">
<go href="<%=request.getContextPath()%>/main.jsp"/>
</onevent>
<timer value="1"/>
</card>

5.一个向WAP发送数据的页面例子
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page language="java" contentType="text/vnd.wap.wml; charset=GBK"%>
<%@ page import="mybean.*"%>
<wml>
<card id="MainCard" title="individualQuery">
<p align="left">
查询字段:
  <select title="queryCol" name="queryCol">
   <option title="" value="<%=(Archives.REGID_DETEIL)%>">注册号</option>
   <option title="" value="<%=(Archives.ENTNAME_DETEIL)%>">企业名称</option>
   <option title="" value="<%=(Archives.REPRESENTATIVE_DETEIL)%>">法定代表人</option>
   <option title="" value="<%=(Archives.ID_DETEIL)%>">建档编号</option>
  </select>
  <br/>
查询值:<input name="queryValue" title="queryValue" type="text" emptyok="false"/>
<br/>
<do type="accept" label="确定" name="doSubmit">
   <go href="index.jsp" sendreferer="true" method="get">
    <postfield name="type" value="0"/>
    <postfield name="queryCol" value="$queryCol"/>
    <postfield name="queryValue" value="$queryValue"/>
   </go>
</do>
</p>
</card>
</wml>

用HTTP GET方法向index.jsp发送三个数据


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息