21
2010

weapon项目服务器端动态加载图片

weapon项目已经可以加载图片了,见weapon项目增加图片的显示。但是静态的。

使用spring mvc动态加载图片文件,然后将流写入到Servlet输出流中。

代码如下:

@RequestMapping("/getImage.do")
public void getImage(@RequestParam("id") String id,
        HttpServletRequest request, HttpServletResponse response) {
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);

    if (id == null || id.isEmpty()) {
        id = "1";
    }

    try {
        OutputStream outputStream = response.getOutputStream();
        BufferedInputStream inputStream = new BufferedInputStream(
                new FileInputStream(request.getSession()
                        .getServletContext().getRealPath("/images/")
                        + id));
        byte[] data = new byte[1024];
        for (int i = inputStream.read(data); i > 0; i = inputStream
                .read(data)) {
            outputStream.write(data, 0, i);
        }
        inputStream.close();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

 

Continue Reading »

20
2010

weapon项目增加图片的显示

如果只是编辑文字,过于枯燥了。给weapon项目的每个记录增加一个图片。

目前还是写死在程序里面的。

image

稍后将改为可修改的上传的图片。这需要使用文件上传功能。另外,目前的图片如果发生改变,不刷新页面的话,会使用缓存,也需要处理。

源代码:

http://easymorse.googlecode.com/svn/tags/Weapons-0.4.5/

PDF格式創作    发送文章为PDF   
20
2010

weapon项目修改表单为对话框

做了个简单的处理,将weapon项目中的表单处理为对话框。

做的不是很彻底,只是简单的。细作的话,需要调整事件处理部分。

截图:

image

Continue Reading »

20
2010

weapon项目实现修改记录功能

增加了更新记录的功能。

这样,基本上临摹google mvp的过程结束了。

在实现这个功能的时候,没有碰到技术方面的问题,这里需要注意的是,修改过程,其实包含了:

  • 根据所选列表的行号,找到数据模型列表的对象;
  • 在发出更新事件时,传递这个对象的id;
  • 事件的处理代码,用这个id到服务器端获取记录数据,如果没有返回null,这时依然打开编辑表单界面,相当于增加新记录,如果有记录,则填充表单;
  • 保存功能新增和修改使用的是同一个代码,只是如果传递id,服务器端认为是修改。

源代码:

http://easymorse.googlecode.com/svn/tags/Weapons-0.4.1/

PDF    发送文章为PDF   
20
2010

weapon项目增加简单的校验功能

正打算给weapon项目增加修改条目的功能。

随意增加了一条空记录。觉得还是先校验一下名称为空的记录吧。

代码很简单,实现的功能也很简单。

image

Continue Reading »

20
2010

weapon项目实现增加新记录功能

weapon项目,已经实现了列表和删除功能。继续临摹google mvp项目。实现增加新记录的功能。

目前实现功能截图,列表功能:

image 

增加新记录:

image

保存后的效果:

image

Continue Reading »

19
2010

gwt weapon项目增加删除功能

为weapon项目(gwt实现基于spring的json应用实例)增加了删除功能。增加了基本的事件处理机制。主要是event包下面的类。

在原有列表功能基础上增加了删除功能。不过还不完善,没有加上地址栏历史处理部分。

主要需要解决的是,删除功能,因为改变了资源,通过的是POST方法(当然最好是用DELETE方法)。

Continue Reading »

19
2010

gwt实现基于spring的json应用实例

在这里写了一个实例,我管它叫“武器列表”。仿google GWT的mvp示例写的,它的示例是为了演示MVP开发模式写的,见:

http://code.google.com/p/gwt-mvp-sample/

但是这个示例使用的是rpc方式和服务器通信。我们使用spring 3.0和json通信。

因此参照它写了个简单的实例,主要是解释json数据如何发送和如何获取。另外,临摹了一下,体会mvp模式。

Continue Reading »

19
2010

gwt异常NoSuchMethodError的解决

在集成spring3.0后,在eclipse下debug GWT webapp时报错:

   [WARN] Error starting handlers
java.lang.NoSuchMethodError: javax.servlet.ServletContext.getContextPath()Ljava/lang/String;
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:254)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:192)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
    at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)

Continue Reading »

18
2010

gwt使用code splitting分割js代码

在ajax开发中,js代码在不断的增长中。往往这些代码都很大,在启动应用的时候,能够被用户觉察到。

gwt提供了编译时技术,可以将java代码翻译成js代码的时候,根据规定的机制,将js代码拆分成多个代码块,这样就可以改善启动应用时的加载效果。

这是不使用code splitting技术的代码:

public class Hello implements EntryPoint {  public void onModuleLoad() {    Button b = new Button("Click me", new ClickHandler() {      public void onClick(ClickEvent event) {        Window.alert("Hello, AJAX");      }    });

    RootPanel.get().add(b);  }

 

Continue Reading »

第38页,共88页« 前...34353637383940414243...后 »