JUnitѧϰ±Ê¼Ç16 ÓÃJSPºÍtaglib½øÐе¥Ôª²âÊÔ3
ÓÃmock objects¶Ôtaglib½øÐе¥Ôª²âÊÔ ÒòΪJSP²»ÊÇ´¿´âµÄjava´úÂ룬ËùÒÔ£¬Ê¹ÓÃmock½øÐвâÊÔÊÇÐв»Í¨µÄ£¬µ«ÊÇ£¬taglibÈ´ÊÇ´¿´âµÄjava´úÂ룬¿ÉÒÔ²âÊÔ£¬µ«ÊÇËüÒ²ÓÐÂé·³µÄµØ·½£¬ÎÒÃÇҪΪ³éÏóµÄjavaÀàµÄPageContext´´½¨mocks¡£ ÔÚÇ°Ãæ£¬ÎÒÃÇÔøÑ§Ï°ÁËʹÓÃEasyMockºÍDynaMockµÄ¿ò¼ÜÀ´´´½¨mock£¬µ«ÊÇ£¬ËûÃÇʹÓõÄÊÇDynamic ProxyÌØÐÔ£¬ËûÃÇÖ»ÄÜΪ½Ó¿Ú²úÉú´úÀí£¬²»ÄÜÓÃÓÚÀà¡£Õâ´Î£¬ÎÒÃÇʹÓÃMockMaker¡£ °²×°²å¼þµÄµØÖ·ÊÇhttp://mockmaker.org/ °²×°µÄ·½·¨¼òµ¥£¬Google£¡ÏÂÃæ½öѧϰһÏÂÓ÷¨¡£ ÔÚÒªmockµÄÀàÉÏÓÒ¼ü£¬Ñ¡ÔñMockMaker—>select package ÕâÑù¾ÍÔÚÄãÑ¡ÔñµÄλÖÃÉú³ÉÁËmock³ÌÐò¡£ ÏÖÔÚÈÃÎÒÃÇΪDynaPropertiesTagÀàдһ¸ömock²âÊÔ³ÌÐò¡£ package junitbook.pages;
import junit.framework.TestCase;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.BasicDynaClass;
import javax.servlet.jsp.tagext.Tag;
public class TestDynaPropertiesMO extends TestCase
{
private DynaPropertiesTag tag;
private MockPageContext mockPageContext;
private DynaBean createDynaBean() throws Exception
{
DynaProperty[] props = new DynaProperty[] {
new DynaProperty("id", String.class),
new DynaProperty("responsetime", Long.class)
};
BasicDynaClass dynaClass = new BasicDynaClass("requesttime",
null, props);
DynaBean bean = dynaClass.newInstance();
bean.set("id", "12345");
bean.set("responsetime", new Long(500));
return bean;
}
protected void setUp()
{
tag = new DynaPropertiesTag();
mockPageContext = new MockPageContext();
tag.setPageContext(mockPageContext);
}
public void testDoStartTag() throws Exception
{
DynaBean bean = createDynaBean();
mockPageContext.setupFindAttribute(bean);
mockPageContext.addExpectedFindAttributeValues("item");
mockPageContext.addExpectedSetAttributeStringObjectValues(
Ïà¹ØÎĵµ£º
setAttribute()ÊÇÓÃÓÚ·þÎñÆ÷¶ËÉèÖÃÊôÐÔÏò¿Í»§¶Ë·¢Ë͸ÃÊôÐÔ£¬ÔÚ¿Í»§¶Ëͨ¹ýgetAttribute£¨£©»ñµÃÊôÐÔ¡£setAttribute()Ò²ÄÜ´«µÝ¶ÔÏó¡£
setParameter()Êǿͻ§¶ËÏò·þÎñÆ÷¶Ë·¢ËÍÊôÐÔ£¬Ö»ÄÜ´«×Ö·û£¬ÓÃÓÚget/postµÄÊýÖµ´«µÝ£¬ÔÚ·þÎñ¶ËÓÃgetParameter£¨£©»ñÈ¡£¬Ò³ÃæÖÐÓÐforward´Ó¶¨ÏòÒ³ÃæµÄµØÖ·ÖеIJÎÊýÒ²ÄÜÓÃgetParameter£¨£©»ñÈ¡¡ ......
Ò» MVCÉè¼ÆÄ£Ê½µÄ¸ÅÄî
MVC±¾À´ÊÇ´æÔÚÓÚDesktop³ÌÐòÖеģ¬MÊÇÖ¸Êý¾ÝÄ£ÐÍ£¬VÊÇÖ¸Óû§½çÃæ£¬CÔòÊÇ¿ØÖÆÆ÷¡£Ê¹ÓÃMVCµÄÄ¿µÄÊǽ«MºÍVµÄʵÏÖ´úÂë·ÖÀ룬´Ó¶øÊ¹Í¬Ò»¸ö³ÌÐò¿ÉÒÔʹÓò»Í¬µÄ±íÏÖÐÎʽ¡£±ÈÈçÒ»Åúͳ¼ÆÊý¾ÝÄã¿ÉÒÔ·Ö±ðÓÃÖù״ͼ¡¢±ýͼÀ´±íʾ¡£C´æÔÚµÄÄ¿µÄÔòÊÇÈ·±£MºÍVµÄͬ²½£¬Ò»µ©M¸Ä±ä£¬VÓ¦¸Ãͬ²½¸üС£& ......
Ò»£º¹¤³§Ä£Ê½³öÏÖµÄÔÒò
Ò»°ãÉè¼ÆÄ£Ê½£º
view plaincopy to clipboardprint?
interface Fruit{
public void eat();
}
class Apple implements Fruit{
&n ......
response.setContentType( "application/pdf" ); // MIME type for pdf doc
response.setHeader("Content-Disposition","attachment;filename=output.pdf;");
Sets the Content-Type header. Content-Type identifies the MIME type of the response document and the character set encoding.
To se ......
ÏÂÔØºóµ¼ÈëÏîÄ¿µ½ MyEclipse , È»ºóÐÞ¸ÄÊý¾Ý¿âÁ¬½Ó²ÎÊý¼´¿É²âÊÔ. ÎÒÕâÓõÄÊÇ MySQL Êý¾Ý¿â. Óà JSP ÊÇÒòΪ Hibernate ¿ÉÒÔÅäºÏ¸÷ÖÖ¿ò¼Ü, Òò´ËÔÚ´úÂëÀïÎÒÒѾ¾¡Á¿µÄ°ÑÒ³ÃæºÍºǫ́µÄÖ±½Ó±äÁ¿ñîºÏ·Ö¸ô¿ªÁË.
hibernate_page.zip 433KB
²¿·Ö´úÂëÏÔʾ:
Ïà¹Ø SQL:
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`u ......