有句名言,叫做10000小时成为某一个领域的专家。姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧。
本文作者Java 现经验约为18 Hour,请各位不吝赐教。
依赖Jar 包管理
刚接触J2EE 相关的东西,第一感觉就是Jar 包的依赖太多了,每次一个一个的报错,然后一个个的加,太过于悲剧。
Marven 就应运而生了。
先随便加上struts 的依赖,剩下的事情就交给maven 吧。当然这个玩意儿最好在网络条件比较好的地方用,我在公司用代理的情况下,maven 挂掉的情况极多。
查看Maven Dependencies 目录,基本引入了不少jar 包,想当年哥可是一个一个加的,直接加到吐血为止。
struts
注意struts 这个东西的拼写,我第一次由于拼写错误老是找不到配置文件- -。
这个东东在这里实现了ASP.NET MVC 中MVC 模块的功能,当然可以用Srping MVC 之类的代替,作为只有18个Hour 经验的小菜,还是先学会这个吧。
struts 包含一套标签库,可以简化开发。
当然似乎也包含一些model 的验证功能,能输出自定义error message.
顺便还囊括了多语言资源文件的支持。
由于示例是按照注册来讲的,其实在增删改查中我比较喜欢先查,所以着部分内容就先跳过,我想要现实一个table 形式的news list.
然后再去做增加修改和删除的操作。
Hibernate
用习惯了Entiry Framework, 用这个Hibernate 确实有一点点的不习惯。
News List
就是这么一个简单的list 页面
jsp 页面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>news list</title> </head> <body> <table> <tr> <td>Id</td> <td>Name</td> </tr> <s:iterator value="#request.all" id="news"> <tr> <td><s:property value="#news.id" /></td> <td><s:property value="#news.name" /></td> </tr> </s:iterator> </table> </body> </html>
action:
public class NewsAction extends ActionSupport { private static final long serialVersionUID = 1L; public String execute() { List<News> all = new ArrayList<News>(); News temp1 = new News(); News temp2 = new News(); temp1.setId("1"); temp2.setId("2"); temp1.setName("name1"); temp2.setName("name2"); all.add(temp1); all.add(temp2); ServletActionContext.getRequest().setAttribute("all", all); return SUCCESS; } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>MikeCURD</display-name> <welcome-file-list> <welcome-file>/page/helloWorld.jsp</welcome-file> </welcome-file-list> <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> </web-app>
ViewModel
package viewModel; public class News { public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } private String id; private String name; }
Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>MikeCURD</groupId> <artifactId>MikeCURD</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!-- Struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.1</version> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
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> <package name="news" extends="struts-default"> <action name="index" class="mike.NewsAction"> <result name="success">/page/newsList.jsp</result> </action> </package> </struts>
不得不说,有什么工具可以简化这些操作么,请各位不吝赐教!