Java Hour 18 来个CURD吧 (三)

时间:2024-01-05 09:42:20

有句名言,叫做10000小时成为某一个领域的专家。姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧。

本文作者Java 现经验约为18 Hour,请各位不吝赐教。

依赖Jar 包管理

刚接触J2EE 相关的东西,第一感觉就是Jar 包的依赖太多了,每次一个一个的报错,然后一个个的加,太过于悲剧。

Marven 就应运而生了。

Java Hour 18 来个CURD吧 (三)

先随便加上struts 的依赖,剩下的事情就交给maven 吧。当然这个玩意儿最好在网络条件比较好的地方用,我在公司用代理的情况下,maven 挂掉的情况极多。

查看Maven Dependencies 目录,基本引入了不少jar 包,想当年哥可是一个一个加的,直接加到吐血为止。

Java Hour 18 来个CURD吧 (三) 

struts

注意struts 这个东西的拼写,我第一次由于拼写错误老是找不到配置文件- -。

这个东东在这里实现了ASP.NET MVC 中MVC 模块的功能,当然可以用Srping MVC 之类的代替,作为只有18个Hour 经验的小菜,还是先学会这个吧。

struts 包含一套标签库,可以简化开发。

当然似乎也包含一些model 的验证功能,能输出自定义error message.

顺便还囊括了多语言资源文件的支持。

由于示例是按照注册来讲的,其实在增删改查中我比较喜欢先查,所以着部分内容就先跳过,我想要现实一个table 形式的news list.

然后再去做增加修改和删除的操作。

Hibernate

用习惯了Entiry Framework, 用这个Hibernate 确实有一点点的不习惯。

News List

Java Hour 18 来个CURD吧 (三)

就是这么一个简单的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>

不得不说,有什么工具可以简化这些操作么,请各位不吝赐教!