微信公众平台 java开发如何在if中回应用户发来的消息

public static String processRequest(HttpServletRequest request) {
// xml格式的消息数据
String respXml = null;
// 默认返回的文本消息内容
String respContent = "";
try {
// 调用parseXml方法解析请求消息
Map<String, String> requestMap = MessageUtil.parseXml(request);
// 发送方帐号
String fromUserName = requestMap.get("FromUserName");
// 开发者微信号
String toUserName = requestMap.get("ToUserName");
// 消息类型
String msgType = requestMap.get("MsgType");
//消息内容
String content = requestMap.get("Content");
// 回复文本消息
TextMessage textMessage = new TextMessage();
textMessage.setToUserName(fromUserName);
textMessage.setFromUserName(toUserName);
textMessage.setCreateTime(new Date().getTime());
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);

content=content.trim();
WeixinDaoImp weixin=new WeixinDaoImp();
if(content.matches("1")){
respContent=weixin.Select();
}
else if(content.matches("2")){
respContent="请选择按什么查询\n"+"a.口味查询\n"+"b.菜名查询\n";
else if(content.matches("a")){
respContent="请输入口味编号:\n "+"0001.微咸"+"\n"+"0002.微辣"+"\n"+"0003.清淡"+"\n"+"0004.酥脆"+"\n";
} }
=========================================================================
如何在(content.matches("2"))中的那个段文字回复给用户后,用户在微信里再输入信息响应content.matches("a")
在线等答案 问题如果解决了追加50分

这个,应该考虑一下使用状态机了。根据实际的需要,定义几种状态,在处理用户信息的时候放到状态里去处理,然后再根据用户选择项“1、2、3...”,去进行实际的响应。

否则,你自己要定义太多的MATCH,程序实现起来复杂,用户使用起来也不方便。追问

我对状态机这一点都不懂,能稍微给我讲一下吗?

追答

简单来讲就是定义几种状态,然后各个状态直接有一个迁移的条件,条件符合了就从状态A跳转到状态B,然后在特定的状态下处理用户的输入。

温馨提示:答案为网友推荐,仅供参考
相似回答