Struts.xml 文件
代码
- <!---->xml version="1.0" encoding="UTF-8" ?>
- <!---->
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <constant name="struts.enable.DynamicMethodInvocation" value="true" />
- <constant name="struts.devMode" value="true" />
- <include file="helloworld.xml"/>
- struts>
<script>render_code();</script>
HelloWorld.xml
代码
- <!---->xml version="1.0" encoding="UTF-8" ?>
- <!---->
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <include file="struts-default.xml"/>
- <package name="helloworld" namespace="/" extends="struts-default">
- <interceptors>
- <interceptor name ="authentication" class ="com.jamesby.struts2.LogonInterceptor"/>
- <interceptor-stack name="helloWorldStack">
- <interceptor-ref name="authentication"/>
- <interceptor-ref name="paramsPrepareParamsStack"/>
- interceptor-stack>
- interceptors>
- <default-interceptor-ref name="helloWorldStack"/>
- <global-results>
- <result name="login">/WEB-INF/jsp/Logon.jspresult>
- global-results>
- <action name="Logon_*" method="{1}" class="com.jamesby.struts2.Logon">
- <interceptor-ref name="paramsPrepareParamsStack"/>
- <result type="redirect-action">Mainresult>
- <result name="input">/WEB-INF/jsp/Logon.jspresult>
- action>
- <action name="crud" method="{1}" class="com.jamesby.struts2.UserAction">
- <result name="list">/WEB-INF/jsp/userList.jspresult> <result name="success" type="redirect-action">crud!listresult>
- <result name="input">/WEB-INF/jsp/userForm.jspresult>
- action>
- <action name="*" class="com.jamesby.struts2.ExampleSupport">
- <result>/WEB-INF/jsp/{1}.jspresult>
- action>
- package>
- struts>
<script>render_code();</script>
LogonInterceptor.java
代码
- package com.jamesby.struts2;
- import java.util.Map;
- import com.jamesby.struts2.persist.User;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ActionInvocation;
- import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
- public class LogonInterceptor extends AbstractInterceptor{
- @Override
- public String intercept(ActionInvocation ai) throws Exception {
- Map session = ai.getInvocationContext().getSession();
- User user = (User) session.get("user");
- if (null != user) {
- return ai.invoke();
- } else {
- return Action.LOGIN;
- }
- }
- }
<script>render_code();</script>
Logon.java
代码
- package com.jamesby.struts2;
- import java.util.Map;
- import org.apache.struts2.interceptor.SessionAware;
- import org.apache.struts2.interceptor.validation.SkipValidation;
- import com.jamesby.struts2.persist.DataBaseMock;
- import com.jamesby.struts2.persist.User;
- import com.opensymphony.xwork2.ActionSupport;
- public class Logon extends ActionSupport implements SessionAware {
- private Map session;
- public void setSession(Map session) {
- this.session = session;
- }
- @SkipValidation
- public String doInput() throws Exception {
- return INPUT;
- }
- public String doLogon() throws Exception {
- User user = DataBaseMock.selectUserByUsernameAndPassword(getUsername(),
- getPassword());
- if (null == user)
- return INPUT;
- session.put("user", user);
- return SUCCESS;
- }
- private String username;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- private String password;
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
<script>render_code();</script>
UserAction.java
代码
- package com.jamesby.struts2;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import org.apache.struts2.interceptor.validation.SkipValidation;
- import com.jamesby.struts2.persist.DataBaseMock;
- import com.jamesby.struts2.persist.User;
- import com.opensymphony.xwork2.ActionSupport;
- public class UserAction extends ActionSupport {
- private User user=new User();
- private List<user></user> userList;
- public List<hashmap></hashmap> getSexArray() {
- List<hashmap></hashmap> sexArray = new ArrayList<hashmap></hashmap>();
- HashMap male = new HashMap();
- male.put("key",new Integer(1));
- male.put("value","男");
- HashMap female = new HashMap();
- female.put("key",new Integer(2));
- female.put("value","女");
- sexArray.add(male);
- sexArray.add(female);
- return sexArray;
- }
- public List<hashmap></hashmap> getFromArray() {
- List<hashmap></hashmap> fromArray = new ArrayList<hashmap></hashmap>();
- HashMap bj = new HashMap();
- bj.put("id",new Integer(1));
- bj.put("name","北京");
- HashMap sh = new HashMap();
- sh.put("id",new Integer(2));
- sh.put("name","上海");
- HashMap tj = new HashMap();
- tj.put("id",new Integer(3));
- tj.put("name","天津");
- fromArray.add(bj);
- fromArray.add(sh);
- fromArray.add(tj);
- return fromArray;
- }
- @SkipValidation
- public String doList() throws Exception {
- userList = DataBaseMock.selectAllUser();
- return "list";
- }
- @SkipValidation
- public String doInput() {
- return INPUT;
- }
- public String doSave() {
- if (null == user.getUserid()) {
- user.setUserid(new Integer(DataBaseMock.getNewUserId()));
- DataBaseMock.saveUser(user);
- }else
- {
- DataBaseMock.updateUser(user);
- }
- return SUCCESS;
- }
- @SkipValidation
- public String doRead()
- {
- user = DataBaseMock.getUser(user.getUserid());
- return INPUT;
- }
- @SkipValidation
- public String doDelete() {
- DataBaseMock.deleteUser(user);
- return SUCCESS;
- }
- public List<user></user> getUserList() {
- return userList;
- }
- public void setUserList(List<user></user> userList) {
- this.userList = userList;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
<script>render_code();</script>
ExampleSupport.java
代码
- package com.jamesby.struts2;
- import com.opensymphony.xwork2.ActionSupport;
- public class ExampleSupport extends ActionSupport {
- }
<script>render_code();</script>
User.java
代码
- package com.jamesby.struts2.persist;
- public class User {
- private Integer userid;
- private String username;
- private String password;
- private int sex;
- private int age;
- private int from;
- public int getFrom() {
- return from;
- }
- public void setFrom(int from) {
- this.from = from;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public int getSex() {
- return sex;
- }
- public void setSex(int sex) {
- this.sex = sex;
- }
- public Integer getUserid() {
- return userid;
- }
- public void setUserid(Integer userid) {
- this.userid = userid;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- }
<script>render_code();</script>
DataBaseMock.java
代码
- package com.jamesby.struts2.persist;
- import java.util.ArrayList;
- import java.util.List;
- public class DataBaseMock {
- private static List<user></user> _cache = new ArrayList<user></user>();
- private static int userid = 0;
- static {
- User user = new User();
- user.setUserid(new Integer(0));
- user.setUsername("admin");
- user.setPassword("12345688");
- user.setFrom(1);
- user.setSex(1);
- user.setAge(18);
- _cache.add(user);
- }
- public static User selectUserByUsernameAndPassword(String username,String password)
- {
- for (User u : _cache) {
- if (u.getUsername().equals(username)&&u.getPassword().equals(password)) {
- return u;
- }
- }
- return null;
- }
- public static List<user></user> selectAllUser()
- {
- return _cache;
- }
- public static int getNewUserId() {
- return ++userid;
- }
- public static void saveUser(User user) {
- _cache.add(user);
- }
- public static void updateUser(User user) {
- deleteUser(user);
- saveUser(user);
- }
- public static void deleteUser(User user) {
- for (User u : _cache) {
- if (u.getUserid().intValue() == user.getUserid().intValue()) {
- _cache.remove(u);
- break;
- }
- }
- }
- public static User getUser(Integer userid) {
- return _cache.get(userid);
- }
- }
<script>render_code();</script>
Logon-validation.xml
代码
- <!---->
- "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
- "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
- <validators>
- <field name="username">
- <field-validator type="requiredstring">
- <message key="requiredstring"/>
- field-validator>
- field>
- <field name="password">
- <field-validator type="requiredstring">
- <message key="requiredstring"/>
- field-validator>
- field>
- validators>
<script>render_code();</script>
UserAction-validation.xml
代码
- <!---->
- "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
- "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
- <validators>
- <field name="user.username">
- <field-validator type="requiredstring">
- <message key="errors.required.username"/>
- field-validator>
- field
|
相关推荐
sourceforge.net经典入门代码,下下来就可以运行,不用去管那些配置文件,很好的入门代码 struts2-tutorial-lesson2.zip
Struts1入门实例 完整代码 包含所有jar包 可直接运行 代码结构清晰 初学者也很容易上手
Struts入门(实例代码+pdf讲解文件)
struts2入门教程+实例源代码,先上传保存,自己也可以用。 教程共32页。
很好,适合初学者,一目了然,这个代码简单易懂,看完后,几乎不用看书了,因为大概的流程都懂了,剩下就是深入研究了,那个就靠自己了哦
十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及提供的app实例。 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图...
这是对应我BLOG里面的Struts2入门实例详解的源代码,也是一个Struts2入门的小例子,毕竟是在学习阶段,所以代码写的很简练易懂.
简单Struts2实例开发,步骤详细,例子简单,做入门使用,所有代码均调试过。
基于Maven的Struts2与Hibernate的入门级代码实例,实现了拦截器、Json等等多个实例。
主要介绍了struts2入门介绍及代码实例,具有一定借鉴价值,需要的朋友可以参考下。
入门实例源代码 博文链接:https://superleo.iteye.com/blog/128210
struts入门与实践,源代码和数据库,实例完整,实用性强
源代码 博文链接:https://superleo.iteye.com/blog/162470
工程源代码 博文链接:https://honly-java.iteye.com/blog/1604667