新建一个工程struts2工程teaweb(因为现在所做的项目是一个关于茶叶,茶文化的),导入jar包(基本的几个jar包:commons-logging-1.0.4.jar,freemarker- 2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.10.jar,xwork-2.0.4.jar),配置 struts.xml配置内容如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.action.extension" value="ph" /> <constant name="struts.multipart.maxSize" value="1000000000"/> <package name="teaweb" extends="json-default" namespace="/"> <action name="test" class="com.teaweb.action.TestAction">
<result type="json"></result> </action> </package> </struts>
注意此处的:extends="json-default" ,<result type="json"></result>
配置web.xml,内容如下:
<?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>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.ph</url-pattern> </filter-mapping>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <jsp-config> <taglib> <taglib-uri>/WEB-INF/struts-tags.tld</taglib-uri> <taglib-location>/WEB-INF/struts-tags.tld</taglib-location> </taglib> </jsp-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
新建一个java类为TestAction,java代码为:
package com.teaweb.action;
import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import com.teaweb.bean.TestBean; import com.teaweb.dao.TestDAO;
public class TestAction extends PublicAction { private TestBean testBean; private long results; private TestDAO testDAO=new TestDAO(); private List list; public String select() { // TODO Auto-generated method stub response.setCharacterEncoding("gb2312"); list=testDAO.select(); results=list.size(); return SUCCESS; } public String login() { // TODO Auto-generated method stub try { request.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.setCharacterEncoding("gb2312"); TestBean result=testDAO.selectbyname(testBean); if(result!=null){ outString("{success:true,msg:'"+result.getName()+"登录成功'}"); }else{ outString("{failure:true,msg:'登录失败'}"); } return null; }
public TestBean getTestBean() { return testBean; }
public void setTestBean(TestBean testBean) { this.testBean = testBean; }
public List getList() { return list; }
public void setList(List list) { this.list = list; }
public long getResults() { return results; }
public void setResults(long results) { this.results = results; }
}
其中TestBean 是一个实体类,还有一个连接数据库查询的方法,只要能查出为List结果就可以了
我这里做了一个登陆和查询所有TEST表里的信息两个方法
其中login.jsp代码为:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'login.jsp' starting page</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="/ext2/resources/css/ext-all.css" /> <script type="text/javascript" src="/ext2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="/ext2/ext-all.js"></script> </head> <body> <script type="text/javascript"> Ext.onReady(function(){ Ext.QuickTips.init(); var form1=new Ext.FormPanel({ renderTo:"panel1", width:500, height:300, frame:true, title:"ajax提交", collapsible:true, minButtonWidth:60, labelAlign:"right", defaultType:"textfield", url:"test!login.ph", items:[{ fieldLabel:"用户名", id:"txtName", name:'testBean.name', allowBlank:false, blankText:"用户名不能为空!" },{ fieldLabel:"密码", allowBlank:false, blankText:"密码不能为空!", name:'testBean.password', inputType:'password' },{ fieldLabel:"备注" }], buttons:[{ text:"提交", handler:function(){ if(form1.getForm().isValid()) { form1.getForm().submit({ success:function(from,action) { Ext.Msg.alert("返回提示",action.result.msg); window.location = 'index.jsp'; }, failure:function(form,action) { Ext.Msg.alert("返回提示",action.result.msg); } }); } } },{ text:"重置", handler:function() { form1.getForm().reset(); } }] });
}); </script> <div id="panel1"> </div> </body> </html>
其中index.jsp页面代码为:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>index</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <link rel="stylesheet" type="text/css" href="/ext2/resources/css/ext-all.css" /> <script type="text/javascript" src="/ext2/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="/ext2/ext-all.js"></script> </head> <body> <script type="text/javascript"> Ext.onReady(function(){ var store=new Ext.data.JsonStore({ url:"test!select.ph", totalProperty: "results", root: "list", fields:[{name:'id',mapping:'id'}, {name:'name',mapping:'name'},{name:'password',mapping:'password'}] }); store.load(); var gird=new Ext.grid.GridPanel({ renderTo:"hello", title:"欢迎登录", height:150, width:300, columns:[ {header:"编号",dateindex:"id"}, {header:"账号",dateindex:"name"}, {header:"密码",dateindex:"password"} ], store:store, autoExpandColumn:2 }) }) </script> <div id="hello"> </div> </body> </html> |
请发表评论