澳门新浦京娱乐场网站-www.146.net-新浦京娱乐场官网
做最好的网站

条件搭建,url美化之后的

这段时日因为要做个网站,而空间又不扶持ASP,所以又拿起JavaScript教程看了下,看能或不能够在静态的空中里福寿年高动态,当然,那个动态不是真正含义上的了,可以说只是三个“伪动态”了:) 最核心的动态页面包车型大巴功能,莫过于news.asp?id=1那样的方式了,于是作者就拿那几个指标开工,弄了一会还真有些效果~基本思维是:从浏览器的地址栏获取当前文件的地点,然后从里边领取id,最终用内嵌框架来展现相关内容。以下是着力的代码 复制代码 代码如下:

在Spring MVC 情形搭建(大器晚成)中大家清楚 spring 的配备是通过 urlmapping 映射到调节器,然后经过完毕Controller接口的handlerequest方法转变页面。

三个网址运维风度翩翩段时间后,栏目设置很只怕产生变化,那时候就有比不小希望产生 UGL450L 变化。而 U福睿斯L 变化的最大主题材料正是招致原先的连年失效,对客商体验非常不好,而且也会潜移暗化寻找引擎对网址的录取。所以我们亟须确认保障早先的 U兰德CRUISERL 不失效。

 导航实际上给新闻报道人员提供了二个地形图相像的东西,让新闻报道人员更加快地找到想要的事物。

像这种类型,就足以把音讯做成页面放在news目录,然后在表面调用news.htm?id=1就足以来查占星关的音讯了~~当然这里的代码并不成熟,例如未有看清ID是还是不是为数字等,那等随后去渐渐康健了:卡塔尔(英语:State of Qatar)

但那存在二个主题素材,当大家项目标页面非常多时,那样一个辉映对应二个调整器,配置文件将会很丰腴!

条件搭建,url美化之后的。比如早先新闻页面包车型客车网站是 U凯雷德L 路由得以轻巧化解。

在2.0中引进了七个很要紧的定义,那正是站点地图siteMap那样多个XML文件,不过它后缀不是XML。

实际在新本子的spring中,urlMapping 已经基本不用,而是接收注解机制。

先写八个准则:

若要为站点创立风流罗曼蒂克致的、轻易管理的导航解决方案,能够利用asp.net站点导航。asp.net站点导航提供下列功效:

spirng 注解

注脚实际上也就是风度翩翩种标记,它同意你在运营时动态地对具备该标识的积极分子开展操作。

达成注脚要求八个标准:注明注解、使用评释的因素、操作使用评释成分的代码。

 

  1. # 剖析和变化新的新闻页面 URL
  2. news_page:
  3.   regex: '/news/([a-z] )/([0-9] ).html'
  4.   config:
  5.     category: 1
  6.     news_id:  2
  7.   defaults:
  8.     controller: news
  9.     action:     show
    1. # 拆解深入分析老的情报页面 UCRUISERL
  10. news_page_keep_old:
  11.   regex: '/([0-9] ).html'
  12.   config:
  13.     news_id:  1
  14.   defaults:
  15.     controller: news
  16.     action:     show

澳门新浦京娱乐场网站 1

黄金时代、注脚配置

1、首先在 spring-servlet.xml 配置文件中,更改 context 命名空间的阐明。

 

1 <beans xmlns="http://www.springframework.org/schema/beans"
2       xmlns:context="http://www.springframework.org/schema/context"
3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4       xsi:schemaLocation="
5         http://www.springframework.org/schema/beans
6         http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
7         http://www.springframework.org/schema/context
8         http://www.springframework.org/schema/context/spring-context-4.1.xsd">

 

2、在 spring-servlet.xml 注释掉 urlMapping 中添加:

 1     <!-- 通过该语句可以扫描com.myweb及com.myweb下子包中的类 -->
 2     <context:component-scan base-package="com.myweb"></context:component-scan>
 3 
 4     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 5         <property name="prefix" value="/WEB-INF/jsp/"></property>
 6         <property name="suffix" value=".jsp"></property>
 7     </bean>
 8     <!--<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 9     <property name="mappings">
10     <props>
11         <prop key="/index.html">IndexAction</prop>
12     </props>
13     </property>
14    </bean>  -->

正如图所示:

澳门新浦京娱乐场网站 2 

复制代码

澳门新浦京娱乐场网站 3

二、相关怀解表明

上述两条准绳,放在前方的刚开始阶段级更加高。

澳门新浦京娱乐场网站 4

1、@Controller

当我们运用注解后,调节器可以不再去达成Controller 接口,只需在类的底部加上 @Controller,告诉 spring 该类就是调整器,spring 则会帮您活动装配。

当号召的 UTucsonL 是 时,前边的平整相称退步,而前面包车型地铁规行矩步相称成功。因而诉求送给了 news 调控器的 show 动作方法管理,况兼附带 news_id 参数。

在打听了有个别基本知识后,大家来做三个大约的领航的事例。

2、@RequestMapping

Spring 通过 RequestMapping 来钦命访问调控器方法来转向页面。 在老版本的 Spring 中,假若分化的 url 访谈同三个调整器,要动用多动作调控器(MultiActionController )。

动用:在调节器中的方法前增加RequestMapping 

  1. function actionShow()
  2. {
  3.     $news_id = intval($_GET['news_id']);
  4.     $news = News::find($news_id)->get();
  5.    
  6.     ... 展现新闻内容
  7. }

1、首先成立叁个master

三、评释使用

复制代码

html代码:

1、倘若大家访谈  就体现音讯页面

 1 package com.myweb;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 import org.springframework.web.servlet.ModelAndView;
 6 
 7 @Controller
 8 public class NewsAction {
 9 
10     @RequestMapping("/news")
11     public ModelAndView ShowNews() {
12 
13         ModelAndView mv = new ModelAndView("news"); // 默认为 news
14         mv.addObject("content", "这是新闻页面");
15         return mv;
16     }
17 
18 }

1.2、校勘 web.xml 的 url 拦截配置

1 <servlet-mapping>
2     <servlet-name>spring</servlet-name>
3     <url-pattern>/</url-pattern>
4 </servlet-mapping>
5 
6 <servlet-mapping>
7     <servlet-name>spring</servlet-name>
8     <url-pattern>/</url-pattern>
9 </servlet-mapping>

如此那般就保证了原本 U帕杰罗L 的实用。

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="mp.master.cs" Inherits="Navigation.mp" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
 <title></title> 
 <asp:ContentPlaceHolder ID="head" runat="server"> 
 </asp:ContentPlaceHolder> 
</head> 
<body> 
 <form id="form1" runat="server"> 
 <div> 
  <table style="width: 656px; height: 255px"> 
   <tr> 
    <td style="width: 500px; background-color: #99ccff"> 
      您当前的位置在: 

     <asp:SiteMapPath ID="SiteMapPath1" runat="server" Font-Names="Verdana" 
      Font-Size="0.8em" PathSeparator=" : "> 
      <CurrentNodeStyle ForeColor="#333333" /> 
      <NodeStyle Font-Bold="True" ForeColor="#990000" /> 
      <PathSeparatorStyle Font-Bold="True" ForeColor="#990000" /> 
      <RootNodeStyle Font-Bold="True" ForeColor="#FF8000" /> 
     </asp:SiteMapPath> 
    </td> 
   </tr> 
   <tr> 
    <td style="width: 500px"> 
     <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> 
     </asp:ContentPlaceHolder> 
    </td> 
   </tr> 
   <tr> 
    <td style="width: 500px; background-color: #ebebff"> 
     版权所有 。。。。。。。</td> 
   </tr> 
  </table> 
 </div> 
 </form> 
</body> 
</html> 

2、若是我们访谈  就彰显音信 id=1 的列表页面

 1 package com.myweb;
 2 
 3 import com.myweb.tool.BarFactory;
 4 import com.myweb.tool.NavBar;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RequestParam;
 8 import org.springframework.web.servlet.ModelAndView;
 9 
10 @Controller
11 public class NewsAction {
12 
13     @RequestMapping("/news")
14     public ModelAndView ShowNewsDetail(@RequestParam(value = "id", required = false) String id) {
15 
16         // news?id=1 则触发此方法
17         ModelAndView mv = new ModelAndView("news"); // 默认为 news
18 
19         NavBar topBar = BarFactory.createBar("top");
20         NavBar bottomBar = BarFactory.createBar("tottom");
21         mv.addObject("top_nav", topBar.getBarContent());
22         mv.addObject("bottom_nav", bottomBar.getBarContent());
23 
24         if (id == null) {
25             mv.addObject("content", "这是新闻列表页面, 没有 ID 参数");
26         } else {
27             mv.addObject("content", "这是新闻页面, id 是: "   id);
28         }
29 
30         return mv;
31     }
32 
33 }

那么当呼吁是 时,前边的规行矩步就同盟成功,此时就不会再合作前面包车型客车平整。而央浼还是actionShow(卡塔尔国 来拍卖。前面包车型地铁准则多了叁个 category 参数,这里并不曾用上,直接忽视就能够。但以此参数是必要的,会用来末端的 UTucsonL 生成。

 显示的功用:

3、假诺大家拜会  就呈现管理音信 id=1 的列表页面

 1 package com.myweb;
 2 
 3 import com.myweb.tool.BarFactory;
 4 import com.myweb.tool.NavBar;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.web.bind.annotation.PathVariable;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 import org.springframework.web.servlet.ModelAndView;
 9 
10 @Controller
11 public class NewsAction {
12 
13     @RequestMapping("/news/{id}/123456")
14     public ModelAndView ShowNewsDetail2(@PathVariable String id) {
15 
16         // news/1/123456 则触发此方法
17         ModelAndView mv = new ModelAndView("news"); // 默认为 news
18 
19         NavBar topBar = BarFactory.createBar("top");
20         NavBar bottomBar = BarFactory.createBar("tottom");
21         mv.addObject("top_nav", topBar.getBarContent());
22         mv.addObject("bottom_nav", bottomBar.getBarContent());
23 
24         mv.addObject("content", "这是新闻列内容页面(用PathVariable的方式), id 是:"   id);
25 
26         return mv;
27     }
28 
29 }

 

最近我们来走访模板中生成 UTiggoL 的代码:

澳门新浦京娱乐场网站 5

  1. url('news/show', array(
  2.     'news_id' => $news->id,
  3.     'category' => $news->category_name
  4. ))

2、创建如下导航构造(统后生可畏行使方面包车型大巴master)

复制代码

澳门新浦京娱乐场网站 6

能够看看,这里大家生成 UQashqaiL 时使用了 category 参数,由早先边的准绳会被用于生成 UENCOREL。最后我们会博得相近 那样的结果。

3、增加站点地图(名称不得以改)

现行反革命我们早已完美的缓慢解决了难题:既保障了早前 URubiconL 的管用,又让媒体人在访谈老页面后方可透过页面中的 UEvoqueL 导航到新格式的 UCR-VL 中。

Web.sitemap下的代码如下:


<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
 <siteMapNode url="a.aspx" title="首页" description="1"> 
  <siteMapNode url="b.aspx" title="根目录B页" description="2" /> 
  <siteMapNode url="Default.aspx" title="Default页" description="3" /> 
  <siteMapNode url="" title="one目录" description="4"> 
  <siteMapNode url="~/one/a.aspx" title="one目录下的a" description="5"/> 
  <siteMapNode url="~/one/b.aspx" title="one目录下的b" description="6"/> 
  <siteMapNode url="" title="one目录下的once目录" description="7"> 
   <siteMapNode url="~/one/once/a.aspx" title="one目录下的once目录下的a" description="8"/> 
   <siteMapNode url="~/one/once/b.aspx" title="one目录下的once目录下的b" description="9"/> 
  </siteMapNode> 
  </siteMapNode> 
  <siteMapNode url="" title="two目录" description="10"> 
  <siteMapNode url="~/two/a.aspx" title="two目录下的a" description="11"/> 
  <siteMapNode url="~/two/b.aspx" title="two目录下的b" description="12"/> 
  </siteMapNode> 

  <siteMapNode url="sitemap.aspx" title="动态修改内存中" description="动态修改内存中的站点地图"/> 
 </siteMapNode> 
</siteMap> 

URL 随心变

4、在根目录下a.aspx,放二个treeView控件。新建数据源为大家创设的站点地图。

除却 SEO,U本田CR-VL 路由还足以让大家随意的组织 U翼虎L 地址。举个例子 这个 URL 规则是:

运作后,大家便能够看见效率如图所示:

  1. cases_show:
  2.   pattern: "/cases/:id"
  3.   defaults:
  4.     controller: "cases"
  5.     action: "show"
  6.   config:
  7.     id: "[0-9] "

澳门新浦京娱乐场网站 7

复制代码

接下去会讲动态矫正内部存款和储蓄器中的站点地图,什么叫动态修正内部存储器中的站点地图,到底是怎样看头呢?

咱俩把法则改为:

澳门新浦京娱乐场网站,诸如小说列表中国和日本常都有多篇,大家总不可能把那些都放到站点地图中去,而且小说ID、栏目编号、商品归类大概商品ID亦不是我们事情发生此前能够预料到的,那么站点地图里不曾,外面就无法显得,该如何是好呢?这就供给用到动态纠正内部存款和储蓄器中的站点地图了。
如下边建议的题目,大家借使有二个篇章管理系统构造如下:
首页-消息-国际新闻(列表)
那么能够假设国际消息这一级的页面是list.aspx,分裂的栏目会有两样的ID,那么地方布局就若是如下:
xxx.com--~/news/--list.aspx?id=3&page=12
如此一个结构,我们对音讯列表页的处理就足以只在站点地图中静态地写上url="~/news/list.aspx"。那么少年老成旦在外人浏览时展现出上边的协会吧,大家接下去管理。
Web.sitemap:

  1. cases_show:
  2.   regex: '/mygod/show-me-the-money/news-sports-(d ).html'
  3.   defaults:
  4.     controller: "cases"
  5.     action: "show"
  6.   config:
  7.     id: 1
<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
 <siteMapNode url="a.aspx" title="首页" description="1"> 
  <siteMapNode url="b.aspx" title="根目录B页" description="2" /> 
  <siteMapNode url="Default.aspx" title="Default页" description="3" /> 
  <siteMapNode url="" title="one目录" description="4"> 
  <siteMapNode url="~/one/a.aspx" title="one目录下的a" description="5"/> 
  <siteMapNode url="~/one/b.aspx" title="one目录下的b" description="6"/> 
  <siteMapNode url="" title="one目录下的once目录" description="7"> 
   <siteMapNode url="~/one/once/a.aspx" title="one目录下的once目录下的a" description="8"/> 
   <siteMapNode url="~/one/once/b.aspx" title="one目录下的once目录下的b" description="9"/> 
  </siteMapNode> 
  </siteMapNode> 
  <siteMapNode url="" title="two目录" description="10"> 
  <siteMapNode url="~/two/a.aspx" title="two目录下的a" description="11"/> 
  <siteMapNode url="~/two/b.aspx" title="two目录下的b" description="12"/> 
  </siteMapNode> 

  <siteMapNode url="sitemap.aspx" title="动态修改内存中" description="动态修改内存中的站点地图"/> 
 </siteMapNode> 
</siteMap> 

复制代码

主要即是用到title为动态改进内部存储器中的这一句来演示。
接下来在示范页面sitemap.aspx中放一个SitemapPath控件,注意设置它的renderCurrentNodeAsLink为true(提醒当前结点为链接)
页面的后台代码:

这时 URL 就变成 了。能够说和之前的 U奥迪Q5L 几乎是一次事。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace Navigation 
{ 
 public partial class sitemap : System.Web.UI.Page 
 { 
  protected void Page_Load(object sender, EventArgs e) 
  { 
   //首先我们在这里注册一个事件,也就是说在访问CurrentNode属性的时候触发这个事件 
   SiteMap.SiteMapResolve =new SiteMapResolveEventHandler(SiteMap_SiteMapResolve); 
  } 
  SiteMapNode SiteMap_SiteMapResolve(object sender,SiteMapResolveEventArgs e) 
  { 
   //我们自定义的处理方法 获取并创建当前节点的副本,并同时复制他的上级节点 
   SiteMapNode CurrentNode = SiteMap.CurrentNode.Clone(true); 

   SiteMapNode TempNode = CurrentNode; 

   int id = nid(); 
   int page = npage(); 

   //从下面方法中得到变量 
   if (id>0) 
   { 
    TempNode.Url = TempNode.Url   "?id="   id.ToString(); 
   } 
   if (id>0 && page>=0) 
   { 
    TempNode.Url = TempNode.Url   "&page="   page.ToString(); 
   } 
   else if (page>0) 
   { 
    TempNode.Url = TempNode.Url   "?page="   page.ToString(); 
   } 
   return TempNode; 
  } 
  //随便设置一个数。 
  private int nid() 
  { 
   return 3; 
  } 
  private int npage() 
  { 
   return 12; 
  } 
 } 
} 

而这么些改良和转移,完全没有必要大家改良应用程序中的代码和模板代码,唯黄金时代须要改换的就是路有准绳表。

分解:上面包车型地铁nid(卡塔尔(英语:State of Qatar)和npage(卡塔尔,是用来博取参数的三个主意,实际中依照实际处境而定。
运行,大家看看这一个链接的质量:


澳门新浦京娱乐场网站 8

到此,大家就很简短的达成了动态改正内部存款和储蓄器中的站点地图了!
站点导航,是大家在BS开辟中丰硕常用的,所以大家依旧很有须求深入精晓的,接下去还有恐怕会发相关的篇章,与大家黄金年代斟酌学习!

你可能感兴趣的稿子:

  • Asp.net给站点某目录扩充Aspnet顾客
  • Asp.net中管理三个站点不一样Web应用分享Session的难点
  • 充足利用ASP.NET的二种缓存进步站点质量的小心方法
  • asp.net Web站点风格切换的落到实处
  • asp.net 站点URAV4LRewrite使用小记
  • asp.net 帮助多语言站点的贯彻情势
  • 导致Asp.Net站点重启十三个原因小结深入分析
  • ASP.NET 站点地图(sitemap卡塔尔国简明教程
  • 享用下页面关键字抓取www.icbase.com站点代码(带asp.net参数的卡塔尔(قطر‎
  • 设置ASP.NET页面包车型地铁运作超时时间详细到单个页面及站点
  • 什么树立ASP.NET站点

本文由澳门新浦京娱乐场网站发布于服务器,转载请注明出处:条件搭建,url美化之后的