(一) postmark用来干什么?
很多网站注册时都要求填写出生地是什么地方对吧。
往往UI是这样的:一个下拉框选择省级行政区单位,你选择好了以后,用第二下拉框选择市(县)。
postmark就是来帮助大家完成这个工作的。
(二) 如何得到postmark?
iteye用户可以通过本文附件下载。
(三) postmark依赖什么?
1) 依赖spring,建议使用spring3.1.2.RELEASE。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.2.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
2) 依赖hsqldb,建议使用hsqldb-2.2.8
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.2.8</version>
</dependency>
(四) 核心API
package com.ztgame.postmark.api;
import java.util.List;
import com.ztgame.postmark.entity.AdministrativeRegion;
/**
* 核心API
*
* @author 应卓
*
*/
public interface PostmarkService {
/**
* 获取所有省级行政区列表
*
* @return 所有省级行政区列表
*/
public List<AdministrativeRegion> getAllLevelOneAdministrativeRegions();
/**
* 根据省级行政区ID获得所辖市县(区)的信息
*
* @param id 省级行政区id
* @return 所辖市县的信息
*/
public List<AdministrativeRegion> getLevelTwoAdministrativeRegionsByParentId(Integer id);
/**
* 根据省级行政区名称或简称获取所辖市县(区)的信息
*
* @param nameOrShortName 省级行政区名称或简称
* @return 获取所辖市县(区)的信息
*/
public List<AdministrativeRegion> getLevelTwoAdministrativeRegionsByParentName(String nameOrShortName);
}
核心API仅仅包含一个接口的三个方法,很简单。
(五) 配置postmark
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
<bean id="postmarkService" class="com.ztgame.postmark.impl.PostmarkServiceImpl">
<property name="jdbcTemplate">
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<jdbc:embedded-database>
<jdbc:script encoding="UTF-8" location="classpath:com/ztgame/postmark/api/postmark.sql" />
</jdbc:embedded-database>
</property>
</bean>
</property>
</bean>
</beans>
这样postmark的核心API就可以使用了。
(六) 在Web项目中运用postmark
1) postmark通过一个javax.servlet.Filter的实现类来响应ajax请求
<bean id="postmarkSerivceFilter" class="com.ztgame.postmark.web.PostmarkServiceFilter">
<property name="encoding" value="utf-8" />
<property name="postmarkService" ref="postmarkService" />
</bean>
2) 在web项目部署描述符应当配置相应的url-pattern信息,如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>postmarkSerivceFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>postmarkSerivceFilter</filter-name>
<url-pattern>/postmark.cgi</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-beans.xml
</param-value>
</context-param>
</web-app>
3) filter接受的请求参数
功能 | method | shortName | cssClass | id | name |
得到所有的省级行政区option标签 | getAllLevelOne | true或者false 默认为false | 任意 | 不需要 | 不需要 |
通过省级行政区ID得到市(县)option标签 | getLevelTwoByParentId | true或者false 默认为false | 任意 | 省级行政区ID | 不需要 |
通过省级行政区名称或简称得到市(县)option标签 | getLevelTwoByParentName | true或者false 默认为false | 任意 | 不需要 | 名称或简称 |
4) jsp example
<%@ page language="java" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>" />
<link rel=stylesheet type="text/css" href="css/style.css"/>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "postmark.cgi",
type: "GET",
data: {
method: "getAllLevelOne",
shortName: "false"
},
dataType: "html",
error: function(){
alert("error");
},
success: function(html) {
$("#level1").html("<option value='-1' class=''>保密</option><option disabled='disabled'>----------------</option>" + html);
}
});
$("#level2").hide();
$("#level1").change(function() {
var parentId = $(this).val();
if (parentId == -1) {
$("#level2").hide();
} else {
$("#level2").show();
$.ajax({
url: "postmark.cgi",
type: "GET",
data: {
method: "getLevelTwoByParentId",
id: parentId,
shortName: "false"
},
dataType: "html",
error: function() {
alert("error");
},
success: function(html) {
$("#level2").html(html);
}
});
}
});
});
</script>
<title>index.jsp</title>
</head>
<body>
<label>你来自:</label><select name="level1" id="level1"></select><select name="level2" id="level2" ></select>
</body>
</html>
5) 效果图
分享到:
相关推荐
在提供的压缩包中,你可能会发现一个教程文件,它包含了更多关于如何使用Postmark的详细信息,包括高级功能和最佳实践。建议仔细阅读这个教程,以便更好地理解和利用Postmark。 总结:Postmark是一款强大的邮件服务...
而 `postmark-inbound-laravel` 是一个专门为 Laravel 设计的库,用于解析 Postmark 提供的入站邮件数据,帮助开发者更方便地处理来自 Postmark 的邮件。 **1. Postmark 服务** Postmark 是由 Wildbit 公司推出的...
Postmark测试工具的工作原理是生成一系列随机的邮件记录,每条记录包含一个从1KB到8KB不等的小文件,然后进行读写操作。测试过程包括文件的创建、打开、读取、修改和删除,这些操作都是模拟真实世界中电子邮件服务器...
【描述】: 邮戳(Postmark)是一款高效的电子邮件服务,而Postmark-PHP是其官方支持的PHP库,使得开发者能够方便地在PHP环境中进行邮件的发送和接收。通过集成这个库,你可以快速地将你的应用程序与Postmark服务连接...
在压缩包中的“Stampie-master”可能是Stampie库的源代码,这是一个PHP库,它为邮件服务提供商(包括上述的SendGrid、PostMark等)提供了一致的接口。使用Stampie,开发者可以轻松切换不同的邮件服务提供商,而无需...
postmark-templates, 应用程序的摇滚电子邮件模板 电子邮件电子邮件模板由给你带来...这是一个完整的电子邮件模板,在大量的电子邮件客户中呈现精美的邮件。 我们将为我们的邮戳模板提供基础,我们很高兴为你提供更广泛
邮戳 用于使用Postmark API的Golang软件包。安装 go get -u github.com/keighl/postmark基本用法拿起您的和您的 。 import ( "github.com/keighl/postmark")client := postmark . NewClient ( "[SERVER-TOKEN]" , "...
邮戳(Postmark)是一个由Wildbit公司开发的高效、可靠的电子邮件服务。它以其强大的SMTP服务器和API接口为开发者提供了便捷的邮件发送和管理功能。Postmark专注于提高电子邮件的投递率,通过验证发件人、过滤垃圾...
它提供了一个统一的API,无论你选择哪种邮件传输方式,如SMTP、SendGrid、Mailgun或Postmark,都能轻松地与之集成。这个组件的设计目标是易于使用、高效且可扩展,旨在替代原有的`SwiftMailer`组件。 `Postmark`是...
您可以选择使用以下方式发布配置文件: php artisan vendor:publish --tag= " postmark-config " 用法 更新您的.env加入你的服务器的密钥文件和邮件驱动程序设置为postmark 。 MAIL_MAILER =postmark POSTMARK_...
作为Postmark的官方Node.js库,postmark.js支持整个REST API。 用法 请在的查看以获取快速入门教程和有关发送电子邮件的详细说明。 有关一般Postmark API的详细信息,请查看。 安装 安装postmark javascript库非常...
这为您提供了一个起点,以便您可以自定义模板以匹配您的品牌。 入门 安装Maizzle CLI: npm install -g @maizzle/cli 用这个启动器搭建一个新项目: maizzle new maizzle/starter-postmark 在本地开发: ...
变更日志用法确保您拥有一个邮戳帐户。访问来注册一个帐户。需要邮戳API密钥。导入postmark.PMMail以使用Postmark。有关更多信息,请查看PMMail对象上的类文档。 Django的该库可与Django独立使用。您还可以添加设置...
postmark文件系统性能测试工具二进制文件
Nodemailer邮戳运输 Nodemailer的邮戳传输。 要求 版本 Node.js peerDependencies 4.x 10+ nodemailer> = 4.x ...const postmarkTransport = require ( 'nodemailer-postmark-transport' ) ; const transp
版权所有2009-2011,Markus Hedlund,Mimmin AB, ,已获得MIT许可。 文件的重新分发必须保留上述版权声明。 其他贡献者 杰夫·唐尼 奥古斯特·特罗米特 赫里斯托·德舍夫(Hristo Deshev...Postmark \ Mail :: compose
一个小的Node.js程序,用于将Postman集合转换为Markdown友好的语法。 PostMark收集了Postman的API路由,并将其转换为Markdown友好的语法,准备将其添加到GitHub README.md文件中。 对于我们的第一阶段,我们使用...
安装将此行添加到您的应用程序的Gemfile中: gem 'postmark-spam_check' 然后执行: $ bundle或将其自己安装为: $ gem install postmark-spam_check用法给它一个原始的电子邮件,以及一个可选的格式和超时。...
用于Postmark API客户端的PSR-11容器工厂介绍这个很小的库提供了与兼容的工厂,用于为用于发送邮件的服务器或用于管理帐户的admin客户端创建Postmark HTTP客户端。 是一种可靠的交易电子邮件传递服务。 这些工厂从其...