jquery + JSonView + spring + ibatis 인 스 턴 스
ibatis 설정 은 붙 이지 않 습 니 다. 다음은 spring 의 주요 설정 입 니 다. annotation 을 사용 하여 설정 해 야 할 것 도 적 습 니 다.
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/config/SqlMapConfig.xml" />
</bean>
<bean id="personDao" class="net.dao.PersonDao">
<property name="sqlMapClient" ref="sqlMapClient" />
</bean>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" >
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="order" value="1" />
</bean>
자바 류 코드 세 개 는 간단 합 니 다. 주요 의 미 를 표현 하면 됩 니 다.
public class PersonDao extends SqlMapClientDaoSupport {
// , ,
}
@Service("personService")
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonDao personDao;
// sql
public List findByLastName(String lastName) {
return personDao.getSqlMapClientTemplate().queryForList("getPerson");
}
}
@Controller
@RequestMapping("/person/**")
public class PersonController {
@Autowired
private PersonService personService;
@RequestMapping(value = "/person/{id}", method = RequestMethod.GET)
public String show(@PathVariable("id") Long id, ModelMap modelMap) {
Assert.notNull(id, "Identifier must be provided.");
modelMap.addAttribute("person", personService.findByLastName(id.toString()));
return "person/show";
}
}
웹. xml 에 DispatcherServlet 맵 *. json 요청 을 설정 하고 jquery 는 json 대상 으로 돌아 가 기 를 요청 합 니 다.imList 는 표, 드 롭 다운 목록 등 을 만 들 수 있 습 니 다.jqgrid 는 jquery 보다 큽 니 다. 표시 만 한다 면 이 몇 K 밖 에 없 는 작은 플러그 인 을 사용 하 세 요.(IE8 에 문제 가 있어 서 직접 고 쳐 야 해 요)
<html>
<head>
<meta http-equiv = "content-type" content = "text/html; charset=UTF-8" />
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script id="source" language="javascript" type="text/javascript">
$(function() {
$.getJSON("person/12.json", null, function(json){
var result = json.person;
//
});
});
</script>
</head>
<body>
<div id="mytb"></div>
</body>
</html>
2010 - 1 - 26 보충:
다음 설정 을 통 해 이니셜 소문 자 이름 에 따라 Controller 더하기 방법 명 을 제거 하여 url 맵 을 실현 할 것 을 약속 할 수 있 습 니 다. 클래스 에 url 을 쓰 지 않 아 도 됩 니 다. 설정 을 더욱 간소화 할 수 있 습 니 다.
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
아래 클래스 맵 보기 common / find
@Controller
public class CommonController {
@Autowired
private CommonService commonService;
@RequestMapping
public void find(@RequestParam("sqlid") String sqlid,
WebRequest webRequest, ModelMap modelMap) {
Map map = new HashMap();
Map<String, String[]> parameter = webRequest.getParameterMap();
// Map<String, String[]> Map<String, String>
Iterator<Entry<String, String[]>> it = parameter.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String[]> pairs = it.next();
if(pairs.getValue().length > 0)
map.put(pairs.getKey(), pairs.getValue()[0]);
}
//
List list = commonService.find(sqlid, map);
modelMap.addAttribute("result", list);
}
}
방법 매개 변 수 는 WebRequest 를 추가 할 수 있 을 뿐만 아니 라 다른 여러 가지 추가 할 수 있 습 니 다. 예 를 들 어 서버 에서 세 션 을 검증 하거나 처리 하 는 등 편리 하고 사용 할 수 있 습 니 다.예전 에는 어떤 언어 를 소개 하 는 것 이 효율 적 이 고, 쓰 는 것 이 매우 적 으 며, 많은 일 을 할 수 있다 고 생각 하지 도 않 았 다.지금 은 다른 언어 를 사용 할 기회 가 많아 져 서 편리 한 곳 을 보면 매우 좋아한다.고 개 를 돌려 자바 와 그 프레임 워 크 를 보 세 요. 제 요 구 는 설정 이 더 적 고 코드 가 더 적 습 니 다.spring 주 해 는 기본 약속 을 추가 하여 설정 을 줄 이 고 우리 가 쓸 코드 량 을 줄 이 며 자바 개발 의 효율 이 향상 되 었 습 니 다.
2010 - 4 - 16: 지금 은 주로 조회 의 응용 이 시원 하 다 고 생각 합 니 다. 자바 코드 는 200 줄 정도 밖 에 안 됩 니 다. (수요 가 간단 하지 않 습 니 다. 5 개 모듈, 각종 조회) ibatisl 은 10 여 개의 조회 sql 을 설정 하고 조건 은 ajax 가 보 낸 것 과 대응 합 니 다.
var settings = {sid:"getpp",exchange:2,limit:50,cc_date:$("#date_input").val()};
$.ajax({type: "POST",url:"../find.json", data:settings, success:function(json){
//create grid
},dataType:"json",error:function () {
alert(' , ');
}
});
<select id="getpp" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
SELECT @rownum:=@rownum+1 rownum, t.* FROM (SELECT @rownum:=0) r, (
SELECT company,SUM(amount) amount FROM XXXX WHERE
<isNotEmpty property="date">
date=#date#
</isNotEmpty>
<isEmpty property="date">
date between #start_date# and #end_date#
</isEmpty>
<isNotEmpty property="code">
and code=#code#
</isNotEmpty>
<isEmpty property="code">
and code like CONCAT('%', #name#, '%')
</isEmpty>
and EXCHANGE=#exchange#
GROUP BY company
ORDER BY amount DESC LIMIT #limit#
) t
</select>
js 코드 는 6700 줄 을 썼 고 jqgrid 표 와 flot 로 그림 을 그 렸 습 니 다.페이지 를 새로 고치 지 않 는 응용 프로그램 이 라면 테스트 를 거 친 구성 요 소 를 사용 해 야 합 니 다. 이름 없 는 작은 구성 요 소 는 사용 할 수 없고 메모리 가 계속 증가 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.