시용 GWT - 1

더 읽 기
구 글 웹 툴 킷 이 드디어 완전히 시작 되 었 습 니 다. 기 쁩 니 다!
자 바스 크 립 트 를 쓰 는 것 은 너무 귀찮아 서 일찌감치 바 꾸 고 싶 었 다. 이번 gwt 개원 은 바로 좋 은 기회 이다.
첫날 시용 하여 Spring 과 의 통합 을 테스트 하여 참고 하 였 다.http://gwt-widget.sourceforge.net/GWT 서버 라 이브 러 리 (GWT - SL) 0.1.2 Released 의 GWT SpringController. java

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.ServletContextAware;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class GWTSpringController extends RemoteServiceServlet implements ServletContextAware, Controller {

	private ServletContext servletContext;

	public void setServletContext(ServletContext servletContext) {
		this.servletContext = servletContext;
	}

	@Override
	public ServletContext getServletContext() {
		return servletContext;
	}

	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		doPost(request, response);
		return null;
	}
}

클 라 이언 트 코드:

// File LoginForm.java
import com.google.gwt.user.client.rpc.IsSerializable;

public class LoginForm implements IsSerializable {
	private String usercode;
	private String pwd;
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getUsercode() {
		return usercode;
	}
	public void setUsercode(String usercode) {
		this.usercode = usercode;
	}
}

// File LoginSvr.java
import com.google.gwt.user.client.rpc.RemoteService;
import com.connstar.client.form.LoginForm;

public interface LoginSvr extends RemoteService {
	Integer queryUserPwd(LoginForm command) throws Exception;
}

// File LoginSvrAsync.java
import com.connstar.client.form.LoginForm;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface LoginSvrAsync {
	void queryUserPwd(LoginForm form, AsyncCallback callback);
}

//       
  Button rpcButton = new Button("RPC");
  rpcButton.addClickListener(new ClickListener() {
		public void onClick(Widget sender) {
			LoginSvrAsync loginService = (LoginSvrAsync) GWT.create(LoginSvr.class);
			ServiceDefTarget endpoint = (ServiceDefTarget) loginService;
			endpoint.setServiceEntryPoint("http://127.0.0.1:8080/test/gwt/login");
			AsyncCallback callback = new AsyncCallback() {
				public void onSuccess(Object result) {
					Window.alert("success:" + result.toString());
				}

				public void onFailure(Throwable caught) {
					Window.alert("failure:" + caught.toString());
				}
			};

			LoginForm form = new LoginForm();
			form.setUsercode("   ");
			form.setPwd("  ");
			loginService.queryUserPwd(form, callback);
		}
	});            

시용 에 성공 하 다.
그 중에서 주의해 야 할 것 은 서버 쪽 에 도 com. google. gwt. user. client. rpc. core 라 는 가방 을 포함해 야 한 다 는 것 이다.
, 실례 화 Character, Byte, Short, Integer, Long, Boolean, Float, or Double, Array List, HashMap 등 을 사용 합 니 다.
A type is serializable and can be used in a service interface if it
    * is primitive, such as char, byte, short, int, long, boolean, float, or double;
    * is String, Date, or a primitive wrapper such as Character, Byte, Short, Integer, Long, Boolean, Float, or Double;
    * is an array of serializable types (including other serializable arrays);
    * is a serializable user-defined class; or
    * has at least one serializable subclass
자바 원본 파일 은 utf - 8 인 코딩 을 사용 하 는 것 을 권장 합 니 다. 그렇지 않 으 면 혼 란 스 러 울 수 있 습 니 다.

좋은 웹페이지 즐겨찾기