`
youyun_2008
  • 浏览: 110231 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

spring mvc 实例

阅读更多
web.xml

<!--
		- Loads the root application context of this web app at startup, - by
		default from "/WEB-INF/applicationContext.xml". - Note that you need
		to fall back to Spring's ContextLoaderServlet for - J2EE servers that
		do not follow the Servlet 2.4 initialization order. - - Use
		WebApplicationContextUtils.getWebApplicationContext(servletContext) -
		to access it anywhere in the web application, outside of the
		framework. - - The root context is the parent of all servlet-specific
		contexts. - This means that its beans are automatically available in
		these child contexts, - both for getBean(name) calls and (external)
		bean references.
	-->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!--
		- Servlet that dispatches request to registered handlers (Controller
		implementations). - Has its own application context, by default
		defined in "{servlet-name}-servlet.xml", - i.e.
		"eventlog-servlet.xml". - - A web app can contain any number of such
		servlets. - Note that this web app has a shared root application
		context, serving as parent - of all DispatcherServlet contexts.
	-->
	
	<servlet>
		<servlet-name>abc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
        <servlet-mapping>
		<servlet-name>abc</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>




abc-servlet.xml

<bean
		class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="exceptionMappings">
			<props>
				<prop key="java.lang.Exception">uncaughtException</prop>
				<prop key="org.springframework.dao.DataAccessException">dataAccessException</prop>
				<prop key="org.springframework.transaction.TransactionException">dataAccessFailure</prop>
<!--				<prop key="com.rdps.eventlog.exception.EventLogException">eventLogException</prop>-->
			</props>
		</property>
	</bean>  

<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />



Controller:
@Controller
@RequestMapping("/xxx.do")
@SessionAttributes({"aaa","bbb"})
public class xxxController {

@RequestMapping(method = RequestMethod.GET)
public String setupForm(Model model)throws Exception {
		Event newEvent=generateDefaultEvent();
		AddEventDisplayData addEventDisplayData = new AddEventDisplayData(newEvent);
		setupFormCommon(model,addEventDisplayData);
		return "addEvent";
	}
	
	@RequestMapping(method = RequestMethod.GET,params = "actionType=fromTask")
	public String setupTaskForm(Model model, String taskId)throws Exception {
		Task task = RMSService.getTaskById(Integer.parseInt(taskId));
		return "addEvent";
	}
	
		
	@RequestMapping(method = RequestMethod.GET,params = "actionType=edit")
	public String setupEditForm(Model model, String eventId, String fromReport, HttpServletRequest request)throws Exception {
		List<EntityRow> typesList = RMSService.getTypesFromTeam(newEvent.getTeam().getId(),newEvent.getSource().getId());
                model.addAttribute("typesList", typesList);
		return "addEvent";

	}
	
	
	@RequestMapping(method = RequestMethod.POST)
	public String processSubmit(HttpServletRequest request,Model model,AddEventDisplayData addEventDisplayData,BindingResult result, SessionStatus status) throws Exception {
		
		validate(addEventDisplayData,result);
			
		if (!result.hasErrors()) {
		    generateEvent(addEventDisplayData, request);
		    Event event = addEventDisplayData.getEvent();
		    
		    if(event.getPreviousEventId()==null || event.getPreviousEventId().length()==0) {
		        RMSService.createEvent(event);
		        status.setComplete();
			    return "redirect:listEvent.do?message=msg.addEventLogSuccess";
		    }
		    else {
		    	RMSService.editEvent(event);
		    	String returnView= "redirect:listEvent.do?message=msg.modifyEventLogSuccess";
		    	if (request.getSession().getAttribute("fromReport") != null) {
		    		returnView="redirect:searchEvent.do?getResult=y&fromReport=y&message=msg.modifyEventLogSuccess";
		    	}
		    	status.setComplete();
			    return returnView;
		    }
		  
		}
		else {
			return "addEvent";
		}
		
	}
	
	
	
	/**
	 * get sources for Add Event page, in order that the new event's source can be
	 * selected.
	 * @return List
	 */
	@ModelAttribute("sources")
	public List<Source> getSources() {
		return RMSService.getSources();
	}
}



jsp


<form:form modelAttribute="addEventDisplayData" onsubmit="return checkData()">

<table class="func_table" id="main_table" width="900">
    <tr>
		<td class="table_title" colspan="2">
			<c:choose>
				<c:when test="${addEventDisplayData.edit}">
					Modify Event
				</c:when>
				<c:otherwise>
					Add New Event
				</c:otherwise>
			</c:choose>
		</td>
	</tr>
	<tr>
		<td colspan="2">
			<table width="80%" cellspacing="0" cellpadding="2">
				<tr>
				    <td align="center" width="10%">Source</td>
					<td align="left" width="30%">
					
						<form:select path="event.source.id" onchange="getEventTypes()" cssStyle="width: 150px;">
							
							<form:options items="${sources}" itemValue="id" itemLabel="name"/>
						</form:select>
					</td>
					<td align="center" width="10%">Team</td>
					<td align="left" width="30%">
						
						<form:select path="event.team.id" onchange="getEventTypes(); getEventUsers(this)" cssStyle="width: 150px;">
							
							<form:options items="${teams}" itemValue="id" itemLabel="name" />
						</form:select>
					</td>
				</tr>
			</table>
		</td>
	</tr>
	<tr>
					<td nowrap align="center">Team member</td>
					<td id="teamMember">
						<table border="0">
							<tr>
								<td>
									<select multiple="true" id="allTeamUsers" style="width: 150px; height: 150px;">
									<c:forEach var="member" items="${teamMembersList}">
									 <option value="${member.id}">${member.name}</option>
									</c:forEach>
									</select>
								</td>
<td style="color: #333333;" width="80" align="center">
									<input id="add" name="add" type="button" value="&gt;" onclick="addUser()" class="button_small"><br><br>
									<input id="remove" name="remove" type="button" value="&lt;" onclick="removeUser()" class="button_small"><br><br>
									<input id="addAll" name="addAll" type="button" value="&gt;&gt;" onclick="addAllUsers()" class="button_small"><br><br>
									<input id="removeAll" name="removeAll" type="button" value="&lt;&lt;" onclick="removeAllUsers()" class="button_small">
	</td>
	<td>
									<form:select path="members" multiple="true" id="selectedUsers" cssStyle="width: 150px; height: 150px;">
									<c:forEach var="member" items="${selectedMembersList}">
									 <form:option value="${member.id}">${member.name}</form:option>
									</c:forEach>
									</form:select>
									
									<form:errors path="members" cssClass="font_error" />
									<label id="memberError" class="font_error" style="display:none"></label>
								</td>
							</tr>
						</table>
					</td>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics