intelliJ IDEA 7.0 으로 첫 번 째 Struts 2 CRUD 애플 리 케 이 션 만 들 기
(2) intelliJ IDEA 새 빈 웹 애플 리 케 이 션 열기
오른쪽 키 프로젝트 에 struts 2 의 jar 패키지 추가:
commons-logging-1.0.4.jar,
freemarker-2.3.8.jar,
ognl-2.6.11.jar,
struts2-core-2.0.11.1.jar,
xwork-2.0.4.jar
(3) 모든 것 이 준비 되 어 인 코딩 을 시작 합 니 다.
먼저 웹. xml 를 설정 합 니 다. 코드 는 다음 과 같 습 니 다.
<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>/*</url-pattern>
</filter-mapping>
(4) 프로젝트 의 src 에 struts. xml, struts. properties 를 새로 만 듭 니 다. 이 두 파일 은 각각 struts 2 - core - 2.0.11.1. jar 의 struts - default. xml 와 default. properties 에 대응 합 니 다. 물론 struts 2 - core - 2.0.11.1. jar 에서 이 두 파일 을 복사 하고 적당 한 수정 을 할 수 있 습 니 다.struts. properties 여 기 는 아무런 수정 도 하지 않 습 니 다.
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>
<include file="struts-default.xml"/>
<package name="default" extends="struts-default" namespace="/user">
<action name="List" class="user.actions.UserAction" method="listUser">
<result name="success">/user/listUser.jsp</result>
</action>
<action name="Edit" class="user.actions.UserAction" method="simpleUser">
<result name="success">/user/editUser.jsp</result>
</action>
<action name="Delete" class="user.actions.UserAction" method="removeUser">
<result name="success" type="redirect">List.action</result>
</action>
<action name="Store" class="user.actions.UserAction" method="storeUser">
<result name="success" type="redirect">List.action</result>
</action>
</package>
</struts>
(5) 새 액 션 코드 는 다음 과 같 습 니 다.
package user.actions;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Collection;
import user.model.User;
import user.dao.UserDao;
public class UserAction extends ActionSupport {
private String userID;
private String[] userIDs;
private User user;
private Collection<User> users;
private UserDao userDao = UserDao.getInstance();
public UserAction(){}
public String execute() throws Exception {
return super.execute();
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String[] getUserIDs() {
return userIDs;
}
public void setUserIDs(String[] userIDs) {
this.userIDs = userIDs;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Collection<User> getUsers() {
return users;
}
public void setUsers(Collection<User> users) {
this.users = users;
}
public UserDao getUserDao() {
return userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
//==============================
//all users
public String listUser(){
users = userDao.getUsers();
return SUCCESS;
}
//simple user
public String simpleUser(){
user = userDao.getUser(userID);
return SUCCESS;
}
//store user
public String storeUser(){
userDao.storeUser(user);
return SUCCESS;
}
//delete users
public String removeUser(){
if(userID != null)
userDao.deleteUser(userID);
else
userDao.removeUsers(userIDs);
return SUCCESS;
}
}
(6) Dao 는 데이터 베 이 스 를 연결 하지 않 고 Concurrent HashMap 을 데이터 소스 로 합 니 다.
package user.dao;
import user.model.User;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Collection;
/**
* Created by IntelliJ IDEA.
* User: ibm
* Date: 2008-5-27
* Time: 14:23:17
* To change this template use File | Settings | File Templates.
*/
public class UserDao {
private static ConcurrentMap<String, User> dataMap;
private static UserDao userDao = new UserDao();
static{
dataMap = new ConcurrentHashMap<String,User>();
dataMap.put("1000",new User("1000","jim","123","beijing"));
dataMap.put("1001",new User("1001","steven","234","shanghai"));
dataMap.put("1002",new User("1002","oscar","123","shanghai"));
}
public UserDao(){}
public static UserDao getInstance(){
return userDao;
}
public User getUser(String userID){
return dataMap.get(userID);
}
public Collection<User> getUsers(){
return dataMap.values();
}
public void removeUsers(String[] userid){
for(String uid:userid){
dataMap.remove(uid);
}
}
public void deleteUser(String userID){
dataMap.remove(userID);
}
public void storeUser(User user){
dataMap.put(user.getUserID(),user);
}
}
(7), 모델 데이터 Bean
package user.model;
/**
* Created by IntelliJ IDEA.
* User: ibm
* Date: 2008-5-27
* Time: 14:02:23
* To change this template use File | Settings | File Templates.
*/
public class User {
private String userID;
private String userName;
private String passWord;
private String address;
public User(){}
public User(String userID,String userName,String passWord,String address){
this.userID = userID;
this.passWord = passWord;
this.userName = userName;
this.address = address;
}
public String getUserID() {
return userID;
}
public void setUserID(String userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
(8), 페이지 표시 listUser. jsp
<s:form id="formSubmit" action="Delete" theme="simple">
<s:iterator value="users">
<tr>
<td>
<input type="checkbox" name="userIDs" value="<s:property value='userID'/>"/>
</td>
<td><s:property value="userID"/></td>
<td><s:property value="userName"/></td>
<td><s:property value="passWord"/></td>
<td><s:property value="address"/></td>
<td>
<s:url id="edit" action="Edit" namespace="/user"><s:param name="userID" value="userID"/></s:url><a href="${edit}">EDIT</a>
</td>
<td>
<s:url id="delete" action="Delete" namespace="/user">
<s:param name="userID" value="userID"/></s:url><a href="${delete}">DELETE</a>
</td>
</tr>
</s:iterator>
<s:a href="javaScript:sunmit();">Delete!</s:a>
<s:a href="editUser.jsp">Add user!</s:a>
</s:form>
(9) 페이지 editUser. jsp 추가 편집
<s:if test="null == user">
ADD USER!
</s:if>
<s:else>
EDIT USER!
</s:else>
<s:form action="Store" name="/user">
<s:textfield name="user.userID" label="USERID:"/>
<s:textfield name="user.userName" label="USERNAME:"/>
<s:textfield name="user.passWord" label="PASSWORD:"/>
<s:textfield name="user.address" label="ADDRESS:"/>
<s:submit value="submit"/>
</s:form>
간단 한 입문 struts 2 애플 리 케 이 션 이 완성 되 었 습 니 다.간단 하기 때문에 struts 2 의 인증 프레임 워 크 를 추가 하지 않 았 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring에서 DAO가 순환 호출될 때 데이터가 실시간으로 업데이트되지 않는 해결 방법문제를 설명하기 전에 몇 가지 전제 사항을 설명하십시오. Spring의 구성 파일에서 다음과 같은 방식으로 데이터베이스 트랜잭션을 구성했다고 가정하십시오. 현재 UserDao 및 Security Service가 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.