Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Icon(s)FileExtensionNote

HTML

*.html, *.htm, *.xhtml
  • Supports HTML/XHTML versions 1 - 5.
  • creates one "HTML5 Source Code" object that is the caller of html to js links and a transaction entry point
  • broadcasts tags and attributes/values to other CAST extensions such as AngularJS. Other extensions will not need to analyze the files themselves.

Javascript*.js, *.jsx, *.mjs

Supports:

  • JavaScript 1 to 1.8.1.
  • JavaScript ECMA 6

See also JavaScript below for more information.

Cascading Style Sheet

*.css and *.scss (*.scss is supported from 2.0.17-funcrel)

Supports CSS 1 - 3.

Java Server Page*.jsp, *.jspx, *.jsf, *.jsff

Supports JSP 1.1 - 2.3.

See JSP below for more information.

Info

Note that:

  • from release 2.0.2 of the extension, *.jsf and *.jsff will automatically be taken into account during the analysis.
  • from release 2.0.3 of the extension, *.jspx will automatically be taken into account during the analysis.

They will be analyzed as .jsp files.


Active Server Page*.asp, *.aspx

See (Classic) ASP below for more information.

HTML Components*.htcHTC files contain html, javascript fragments that will be parsed. Created objects will be linked to the HTC file.

ASP.NET MVC Razor*.cshtml

See ASP.NET MVC Razor below for more information.

IBM EAD4J Jade*.jadeFiles related to the IBM EAD4J Jade framework.

Pug*.pugPug files.
-YAML (YAML Ain't Markup Language)*.yml, *.yaml, Files related to the YAML language, handled by the Node.js extension.
-Vue.JS*.vueFiles related to the Vue.js JavaScript language, handled by the Node.js and Vue.js extensions.
-Properties*.properties

--

-Template*.templateFiles related to serverless.template, handled by the Node.js extension.


Info
Expand

Note that you may find that the number of files delivered is more than then number of files reported after analysis. This is due to the following:

  • by default some files are automatically excluded from the analysis, typically third-party frameworks which are not required. Please see the filters.json file located at the root of the extension folder for a complete list of default exclusions.
  • some bundled javascript files are automatically excluded from the analysis, typically minified files (extension.min.js) or disguised minified files (extension.js), but for files containing one or a few very long lines, a specific calculation is actioned by the analyzer). 
  • some files that have been included in the analysis may not be saved in the CAST Analysis Service schema because they do not contain any useful information, i.e. they do not contain any technical sections such as functions which would lead to the creation of a specific object.

Technology support notes

...

ASP - Since version 2.1.14-funcrel, files which are excluded from analysis are considered as external libraries when they are included by analyzed code. For each file, a "HTML5 JavaScript Source Code" is created with the external property set to "True". This means that these files are not included in rule checks or other computations.

Excerpt Include

Technology support notes

Anchor
ASP
ASP
(Classic) ASP

Expand

Excerpt Include
ASP - Technical notes and limitations
ASP - Technical notes and limitations
nopaneltrue

...

The extension will be automatically downloaded and installed in AIP Console (it is a "shipped" extension which means it is delivered with AIP Core).  You can also manually install the extension CAST Console. You can manage the extension using the Application - Extensions interface. When installed, follow the instructions below to run a new analysis/snapshot to generate new results:

:

Image Added

Packaging, delivering and analyzing your source code

...

The following libraries are supported for Web Service HTTP calls:

  • XMLHttpRequest
  • window.open
  • document.submit
  • location.href
  • Ext.Updater (Sencha)
  • EventSource
  • fetch
  • axios
  • superagent
  • aws-amplify
  • falcor
  • WLResourceRequest
  • WebSocket

Once the HTML5 extension analysis is finished, the analyzer will output the final number of web service calls created.

XMLHttpRequest

...

When urls could not be correctly evaluated, a HTTP call named "{}" will be created, except for:

  • window.open
  • window.location.href, 
  • document.location.href

These exceptions are due to very large number of statements, and they are not explicit calls as "ajax", "get", "post", "delete"... functions.

XMLHttpRequest

Code Block
languagejs
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "ajax_info.txt", false);
xhttp.send();

window.open

Code Block
languagejs
url = "EditStandaloneWeb.do?url_name_id="+urlNameId;
popUpWindow = window.open(url,'popUpWindow','height=900,width=900,left=300,top=50,resizable=no,directories=no,status=no');

document.submit

Code Block
languagejs
addUpload.document.forms[1].action = "ciedit";
addUpload.document.forms[1].submit();

...

Code Block
languagejs
$form.prop('method', 'post');
$form.prop('action', '<c:out value="/toto" />');
$form.submit();

location.href

Code Block
languagejs
url = "//localization.att.com/loc/controller";
window.location.href = url;

...

Code Block
languagejs
url = "//localization.att.com/loc/controller";
document.location.href=url;

Ext.Updater (Sencha)

Code Block
languagejs
Ext.get(panelId).getUpdater().update({
	url:'actionUrl',
	params:params,
	method:'POST',
	failure: function(inResp) {}
});

EventSource

Code Block
languagejs
const eventsUrl = '/api/dashboard/events?token=' + localStorage.getItem('dashboard_token');
const serverEvents = new EventSource(eventsUrl);

fetch

Code Block
languagejs
fetch('/users', {
	method: 'POST',
	body: new FormData(form)
});

axios

Code Block
languagejs
axios.get('/user', {
	params: {
		ID: 12345
	}
})
.then(function (response) {
	console.log(response);
})
.catch(function (error) {
	console.log(error);
});

...

Code Block
languagejs
var instance = axios.create({
	baseURL: 'https://api.example.com'
}); 
instance.get('/longRequest', {
	timeout: 5000
});

superagent

Code Block
languagejs
request
	.post('/api/pet')
	.send({ name: 'Manny', species: 'cat' })
	.set('X-API-Key', 'foobar')
	.set('Accept', 'application/json')
	.end(function(err, res){
		// Calling the end function will send the request 
	});

...

Code Block
languagejs
request('/search', (err, res) => {
});

aws-amplify

Code Block
languagejs
import {API} from 'aws-amplify';
API.get('ReactSample','/items/orders/' + sessionStorage.getItem('latestOrder')).then(response => {});

falcor

Code Block
languagejs
var falcor = require('falcor');
var model = new falcor.Model({source: new falcor.HttpDataSource('/model.json')});
model
	.get(["events", "byName", ["Midwest JS"], ['description']])
	.then(function(response) {
			document.getElementById('event-data').innerHTML = JSON.stringify(response, null, 2);
		}, 
		function(err) {
			console.log(err);
		});

WLResourceRequest

Code Block
languagejs
var request = new WLResourceRequest('/adapters/sampleAdapter/multiplyNumbers', WLResourceRequest.GET);
request.setQueryParameter('params', [5, 6]);
request.send().then(
		function(response) {
			// success flow, the result can be found in response.responseJSON
		},
		function(error) { 
			// failure flow 
			// the error code and description can be found in error.errorCode and error.errorMsg fields respectively 
		}
);

...

Code Block
languagejs
  var request = new WLResourceRequest(URI("/adapters/sampleAdapter/multiplyNumbers"), WLResourceRequest.GET);
  request.setQueryParameter('params', [5, 6]);
  request.send().then(function(response) {}, function(error) {});

Web Service calls in html/jsp code

The following libraries are supported for Web Service HTTP calls:

  • href
  • iframe.src
  • form.action
  • input.formaction
  • datamap
  • jsp.forward
  • jsp.pager
  • struts-html
  • struts tags-html
  • struts-tags
  • struts-nested
  • struts jqgrid
  • euamtags
  • spring

Once the HTML5 extension analysis is finished, the analyzer will output the final number of web service calls created.

href

Code Block
languagexml
<a href="@Url.Action("Edit", "MissionMandatoryDocuments", new
	{
		type = item.Key,
		nodeId = Model.NodeId
	})">
</a>

iframe.src

Code Block
languagexml
<iframe src="/greco/ValidationADP.do?hidden=doPerform" height="900" width="1000"></iframe>

form.action

Code Block
languagexml
<form action="@Url.Action("Export", "InterimBillsEvaluation")" method="post">
</form>
Code Block
languagexml
<form action="<c:out value="${epayCustomer.absoluteBaseWithContextPath}"/>/dlife/payBill.perform" method="GET">
</form>

input.formaction

Code Block
languagexml
<input type="submit" value="Save" name="Edit" formaction="@Url.Action("edit")" class="btn btn-default" />

datamap

Code Block
languagexml
<div id="map" data-request-url="@Url.Action("GetStops", "Home")" data-request-url2="@Url.Action("Driving", "Home")">
<script>
	function getStops() {
		var url = $('#map').data('request-url');
		window.open(url) 
	}
</script>

jsp.forward

Code Block
languagexml
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<jsp:forward page="/dispatcher/mainMenu"/>

jsp.pager

Code Block
languagexml
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>
<html>
	<pg:pager url="RolePaginationAction.do" items="<%= total_records %>" index="<%= index %>" maxPageItems="<%= maxPageItems %>" maxIndexPages="<%= maxIndexPages %>" isOffset="<%= true %>" export="offset,currentPageNumber=pageNumber" scope="request">
	</pg:pager>
</html>

struts-html

Code Block
languagexml
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html xhtml="true">
	<div align="center">
		<html:form action="/submitCustomerForm" method="GET" />
	</div>
</html:html>
Code Block
languagexml
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html xhtml="true">
	<div align="center">
		<html:link page="/submitCustomerForm" />
	</div>
</html:html>

struts tags-html

Code Block
languagexml
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html:html xhtml="true">
	<div align="center">
		<html:link action="bookEdit.do?do=borrowBook" paramName="book" paramProperty="id" paramId="id">Borrow book</html:link>
	</div>
</html:html>

struts-tags

Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<s:url action="banque" method="consulter" var="urlAcceuil"/>
	<s:a href="%{urlAcceuil}">Retour à l'acceuil</s:a>
</html>
Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<body>
		<s:a action="compte" />
	</body>
</html>
Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<body>
		<s:form action="compte">
			<s:hidden name="contract_nbr" id="contract_nbr" value="%{mod.contract_nbr}"/>
		</s:form>
	</body>
</html>

struts-nested

Code Block
languagexml
<%@ taglib uri="/tags/struts-nested" prefix="nested" %>
<html:html xhtml="true">
	<div align="center">
		<nested:form action="modifyAccount.do" />
	</div>
</html:html>

struts jqgrid

Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" href="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>
Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" editurl="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>
Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" cellurl="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>
Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:gridColumn id="sjgrid" surl="/url">
	</sjg:gridColumn>
</html>
Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:gridColumn id="sjgrid" editoptions="{dataUrl: '/url'}">
	</sjg:gridColumn>
</html>

euamtags

Code Block
languagexml
<%@ taglib uri="WEB-INF/euamtags.tld" prefix="Euam" %>
<div align="center">
	<Euam:form action="/submitCustomerForm" />
</div>

spring

Code Block
languagexml
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
	<div align="center">
		<form:form method="POST" action="/HelloWeb/addStudent" />
	</div>
</html>
Code Block
languagexml
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
	<div align="center">
		<form:form method="POST" commandName="changePassword" action="" />
	</div>
</html>

Web Service calls in razor code (cshtml)

  • Html.BeginForm
  • Ajax.BeginForm
  • Html.Action
  • Html.ActionLinkWithAccess
  • Html.ActionLink
  • Ajax.ActionLink
  • Html.RenderAction
  • Url.Action
  • Url.RouteUrl
  • Kendo

Once the HTML5 extension analysis is finished, the analyzer will output the final number of web service calls created.

Html.BeginForm

Code Block
languagexml
@using (Html.BeginForm("Setting", "Peopulse", FormMethod.Post, new { autocomplete = "off", id = "form-peopulseFtpSettings", @class = "block" }))
{
	<input type="submit" name="Submit" />
}

Ajax.BeginForm

Code Block
languagexml
@using (Ajax.BeginForm("Setting", "Peopulse", new { //routeValues
		missionId = Model.Mission.Id,
		dayId = Model.MissionDayId,
		method="GET"
	},
	new AjaxOptions { //Ajax setup
		UpdateTargetId = "synthesisLinesDiv",
		HttpMethod = "GET",
		InsertionMode = InsertionMode.Replace,
	},
	new { //htmlAttributes
		Id = "form-selectSynthesis",
		//method="get"
	}))
{
}

Html.Action

Code Block
languagexml
@Html.Action("Delete", "Ctrl", new { id = item.ID })

Html.ActionLinkWithAccess

Code Block
languagexml
@Html.ActionLinkWithAccess(__("Add frequency interim summary"), "AddFrenquencyInterimSummary", null, new {@class = "btn popupLink"})

Html.ActionLink

Code Block
languagexml
@Html.ActionLink("Save", "SaveAction", "MainController", null, new { @class = "saveButton", onclick = "return false;" })

Ajax.ActionLink

Code Block
languagexml
@Ajax.ActionLink("x", "Delete", "NotificationMessenger", new { notific.Id }, new AjaxOptions() { HttpMethod = "POST", OnComplete = "DismissNotification" }, new { @class = "notification-close" })

Html.RenderAction

Code Block
languagexml
@Html.RenderAction("Delete", "Ctrl", new { id = item.ID })

Url.Action

Code Block
languagexml
@{ Html.RenderPartial("_EmployeesTable", @Url.Action("GetFrenquencyInterimSummary")); }
Code Block
languagexml
@using (Html.BeginForm("edit", "Employee", FormMethod.Post))
{
	<div class="form-horizontal">
		<div class="form-group">
			<div class="col-md-offset-2 col-md-10">
				<input type="submit" value="Save" name="Edit" formaction="@Url.Action("edit")" formmethod="post" class="btn btn-default"/>
			</div>
		</div>
	</div>
}
Code Block
languagexml
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter}))

Url.RouteUrl

Code Block
languagexml
<a href="@(Url.RouteUrl(new{ action="DownloadFile", controller="DPScoreResults", id=Model.QuoteId, scoreRunId=Model.ScoreRunId}))" class="popupLink ico">

Kendo

Code Block
languagexml
<div>
	@(Html.Kendo().Grid<ElementControle>()
		.Name("gridElementsControle")
		.DataSource(datasource =>
			datasource.Ajax()
				.Read(r => r.Action("GetElementsControle", "GestionUnitesTraitement"))
		)
	)
</div>

...

The following objects are displayed in CAST Enlighten:

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

HTML5 CSS Source Code

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

Image Removed

...

HTML5 Web Socket Service

...

Image Removed

...

HTML5 Get XMLHttpRequest Service

HTML5 Get HttpRequest Service

HTML5 Razor Get service

...

Image Removed

...

HTML5 Update XMLHttpRequest Service

HTML5 Update HttpRequest Service

...

Image Removed

...

HTML5 Post XMLHttpRequest Service

HTML5 Post HttpRequest Service

HTML5 Razor method call

...

Image Removed

...

HTML5 Delete XMLHttpRequest Service

HTML5 Delete HttpRequest Service

...

Image Removed

...

HTML5 Applet class reference

...

Image Removed

...

dojo

Code Block
languagejs
      var xhrArgs = {
        url: "dojo/LICENSE_NOT_THERE",
        handleAs: "text",
        preventCache: true,
        handle: function(error, ioargs){
        }
      }
      var deferred = dojo.xhr("POST", xhrArgs);


Code Block
languagejs
  var xhrArgs = {
    url: "dojo/LICENSE_NOT_THERE",
    handleAs: "text",
    preventCache: true,
    handle: function(error, ioargs){
    }
  }
  var deferred = dojo.xhrGet(xhrArgs); // or dojo.xhrPost, dojo.xhrPut, dojo.xhrDelete


Code Block
languagejs
  require(["dojo/request"], function(request){
    request("my_url").then(
        function(text){
        },
        function(error){
        }
    );
});


Code Block
languagejs
require(["dojo/request/node"], function(nodeRequest){
    nodeRequest("my_url").then(
        function(text){
            console.log("The file's content is: " + text);
        },
        function(error){
            console.log("An error occurred: " + error);
        }
    );
});


Code Block
languagejs
require(["dojo/request"], function(request){
    request.get("my_url").then(
        function(text){
            console.log("The file's content is: " + text);
        },
        function(error){
            console.log("An error occurred: " + error);
        }
    );
});	// or request.post, request.put, request.del

WebSocket

Code Block
languagejs
      var socket = new WebSocket('ws://game.example.com:12010/updates2');


Web Service calls in html/jsp code

The following libraries are supported for Web Service HTTP calls:

  • href
  • iframe.src
  • form.action
  • input.formaction
  • datamap
  • jsp.forward
  • jsp.pager
  • struts-html
  • struts tags-html
  • struts-tags
  • struts-nested
  • struts jqgrid
  • euamtags
  • spring

Once the HTML5 extension analysis is finished, the analyzer will output the final number of web service calls created.

href

Code Block
languagexml
<a href="@Url.Action("Edit", "MissionMandatoryDocuments", new
	{
		type = item.Key,
		nodeId = Model.NodeId
	})">
</a>

iframe.src

Code Block
languagexml
<iframe src="/greco/ValidationADP.do?hidden=doPerform" height="900" width="1000"></iframe>

form.action

Code Block
languagexml
<form action="@Url.Action("Export", "InterimBillsEvaluation")" method="post">
</form>


Code Block
languagexml
<form action="<c:out value="${epayCustomer.absoluteBaseWithContextPath}"/>/dlife/payBill.perform" method="GET">
</form>

input.formaction

Code Block
languagexml
<input type="submit" value="Save" name="Edit" formaction="@Url.Action("edit")" class="btn btn-default" />

datamap

Code Block
languagexml
<div id="map" data-request-url="@Url.Action("GetStops", "Home")" data-request-url2="@Url.Action("Driving", "Home")">
<script>
	function getStops() {
		var url = $('#map').data('request-url');
		window.open(url) 
	}
</script>

jsp.forward

Code Block
languagexml
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<jsp:forward page="/dispatcher/mainMenu"/>

jsp.pager

Code Block
languagexml
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>
<html>
	<pg:pager url="RolePaginationAction.do" items="<%= total_records %>" index="<%= index %>" maxPageItems="<%= maxPageItems %>" maxIndexPages="<%= maxIndexPages %>" isOffset="<%= true %>" export="offset,currentPageNumber=pageNumber" scope="request">
	</pg:pager>
</html>

struts-html

Code Block
languagexml
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html xhtml="true">
	<div align="center">
		<html:form action="/submitCustomerForm" method="GET" />
	</div>
</html:html>


Code Block
languagexml
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html xhtml="true">
	<div align="center">
		<html:link page="/submitCustomerForm" />
	</div>
</html:html>

struts tags-html

Code Block
languagexml
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html:html xhtml="true">
	<div align="center">
		<html:link action="bookEdit.do?do=borrowBook" paramName="book" paramProperty="id" paramId="id">Borrow book</html:link>
	</div>
</html:html>

struts-tags

Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<s:url action="banque" method="consulter" var="urlAcceuil"/>
	<s:a href="%{urlAcceuil}">Retour à l'acceuil</s:a>
</html>


Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<body>
		<s:a action="compte" />
	</body>
</html>


Code Block
languagexml
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
	<body>
		<s:form action="compte">
			<s:hidden name="contract_nbr" id="contract_nbr" value="%{mod.contract_nbr}"/>
		</s:form>
	</body>
</html>

struts-nested

Code Block
languagexml
<%@ taglib uri="/tags/struts-nested" prefix="nested" %>
<html:html xhtml="true">
	<div align="center">
		<nested:form action="modifyAccount.do" />
	</div>
</html:html>

struts jqgrid

Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" href="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>


Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" editurl="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>


Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:grid id="sjgrid" dataType="json" cellurl="/url" caption="Grid Model" gridModel="gridModel" pager="true" navigator="true">
	</sjg:grid>
</html>


Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:gridColumn id="sjgrid" surl="/url">
	</sjg:gridColumn>
</html>


Code Block
languagexml
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags" %>
<html>
	<sjg:gridColumn id="sjgrid" editoptions="{dataUrl: '/url'}">
	</sjg:gridColumn>
</html>

euamtags

Code Block
languagexml
<%@ taglib uri="WEB-INF/euamtags.tld" prefix="Euam" %>
<div align="center">
	<Euam:form action="/submitCustomerForm" />
</div>

spring

Code Block
languagexml
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
	<div align="center">
		<form:form method="POST" action="/HelloWeb/addStudent" />
	</div>
</html>


Code Block
languagexml
<%@taglib uri = "http://www.springframework.org/tags/form" prefix = "form"%>
<html>
	<div align="center">
		<form:form method="POST" commandName="changePassword" action="" />
	</div>
</html>

Web Service calls in razor code (cshtml)

  • Html.BeginForm
  • Ajax.BeginForm
  • Html.Action
  • Html.ActionLinkWithAccess
  • Html.ActionLink
  • Ajax.ActionLink
  • Html.RenderAction
  • Url.Action
  • Url.RouteUrl
  • Kendo

Once the HTML5 extension analysis is finished, the analyzer will output the final number of web service calls created.

Html.BeginForm

Code Block
languagexml
@using (Html.BeginForm("Setting", "Peopulse", FormMethod.Post, new { autocomplete = "off", id = "form-peopulseFtpSettings", @class = "block" }))
{
	<input type="submit" name="Submit" />
}

Ajax.BeginForm

Code Block
languagexml
@using (Ajax.BeginForm("Setting", "Peopulse", new { //routeValues
		missionId = Model.Mission.Id,
		dayId = Model.MissionDayId,
		method="GET"
	},
	new AjaxOptions { //Ajax setup
		UpdateTargetId = "synthesisLinesDiv",
		HttpMethod = "GET",
		InsertionMode = InsertionMode.Replace,
	},
	new { //htmlAttributes
		Id = "form-selectSynthesis",
		//method="get"
	}))
{
}

Html.Action

Code Block
languagexml
@Html.Action("Delete", "Ctrl", new { id = item.ID })

Html.ActionLinkWithAccess

Code Block
languagexml
@Html.ActionLinkWithAccess(__("Add frequency interim summary"), "AddFrenquencyInterimSummary", null, new {@class = "btn popupLink"})
Code Block
languagexml
@Html.ActionLink("Save", "SaveAction", "MainController", null, new { @class = "saveButton", onclick = "return false;" })

Ajax.ActionLink

Code Block
languagexml
@Ajax.ActionLink("x", "Delete", "NotificationMessenger", new { notific.Id }, new AjaxOptions() { HttpMethod = "POST", OnComplete = "DismissNotification" }, new { @class = "notification-close" })

Html.RenderAction

Code Block
languagexml
@Html.RenderAction("Delete", "Ctrl", new { id = item.ID })

Url.Action

Code Block
languagexml
@{ Html.RenderPartial("_EmployeesTable", @Url.Action("GetFrenquencyInterimSummary")); }


Code Block
languagexml
@using (Html.BeginForm("edit", "Employee", FormMethod.Post))
{
	<div class="form-horizontal">
		<div class="form-group">
			<div class="col-md-offset-2 col-md-10">
				<input type="submit" value="Save" name="Edit" formaction="@Url.Action("edit")" formmethod="post" class="btn btn-default"/>
			</div>
		</div>
	</div>
}


Code Block
languagexml
@Html.PagedListPager(Model, page => Url.Action("Index", new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter}))

Url.RouteUrl

Code Block
languagexml
<a href="@(Url.RouteUrl(new{ action="DownloadFile", controller="DPScoreResults", id=Model.QuoteId, scoreRunId=Model.ScoreRunId}))" class="popupLink ico">

Kendo

Code Block
languagexml
<div>
	@(Html.Kendo().Grid<ElementControle>()
		.Name("gridElementsControle")
		.DataSource(datasource =>
			datasource.Ajax()
				.Read(r => r.Action("GetElementsControle", "GestionUnitesTraitement"))
		)
	)
</div>

External libraries

In HTML5/Javascript ≥ 2.1.21, the analyzer is capable of finding external libraries using package.json files (dependencies and devDependencies sections). It creates external libraries under a folder named "HTML5 external libraries" directly under the project root. One external library is created for each couple (library name, version), and include links are created from the javascript sources to these libraries. Only called libraries are created. Each library object contains a property for the version. These objects are of the type "HTML5 JavaScript Source Code".

External libraries are also created when code like <script src="http://..../jquery.1.2.3.min.js"> is found in html files. The version is searched in the url (here 1.2.3) and the name is extracted (here jquery).

Image Added

Contents of "node_modules" folder

In HTML5/Javascript ≥ 2.1.14, the analyzer is capable of scanning the contents of the "node_modules" folder which contains third-party external libraries. For every external item in the "node_modules" which is called by analyzed source code, a corresponding object will be created by the HTML5/JavaScript analyzer and therefore exposed in the analysis results. The items in the "node_modules" folder are not actually analyzed as such and are still ignored via an entry in the filters.json file. This is one part of a project to expose (in analysis results) called external libraries located in the "node_modules" folder.

Info

Note that by default, Console will ignore the "node_modules" folder (except in releases 2.5.x and 2.6.x) due to analysis performance issues. Therefore if you require this behaviour, you must manually remove the exclusion pattern knowing that your analysis times may increase:

Modern onboarding

Image Added

Legacy onboarding

Image Added

Anchor
objects
objects
Objects

The following objects are displayed in CAST Enlighten:

 IconDescription

Image Added

JavaScript file

Image Added

HTML5 Source Code

Image Added

HTML5 Source Code Fragment

Image Added

HTML5 ASP Content

Image Added

HTML5 ASPX Content

Image Added

HTML5 CSHTML Content

Image Added

HTML5 CSS Source Code

Image Added
HTML5 CSS Source Code Fragment

Image Added

HTML5 HTC Content

Image Added

HTML5 JavaScript Source Code

Image Added

HTML5 JSX source code

Image Added

HTML5 Jade source code

Image Added

HTML5 Pug source code
Image Added
HTML5 JavaScript Source Code Fragment

Image Added

HTML5 JavaScript Function

Image Added

HTML5 Javascript Method

Image Added

HTML5 Javascript Class

Image Added

HTML5 Javascript Class Constructor
Image Added

HTML5 WebSocket service

Image Added

HTML5 Get XMLHttpRequest Service

HTML5 Get HttpRequest Service

HTML5 Razor Get service

Image Added

HTML5 Update XMLHttpRequest Service

HTML5 Update HttpRequest Service

Image Added

HTML5 Post XMLHttpRequest Service

HTML5 Post HttpRequest Service

HTML5 Razor method call

Image Added

HTML5 Delete XMLHttpRequest Service

HTML5 Delete HttpRequest Service

Image Added

HTML5 Applet class reference

Image Added

J2EE HTML5 Applet

Structural Rules

2.1.21-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.21-funcrel
2.1.20-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.20-funcrel
2.1.19-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.19-funcrel
2.1.18-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.18-funcrel
2.1.17-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.17-funcrel
2.1.16-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.16-funcrel
2.1.15-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.15-funcrel
2.1.14-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.14-funcrel
2.1.13-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.13-funcrel
2.1.12-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.12-funcrel
2.1.11-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.11-funcrel
2.1.10-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.10-funcrel
2.1.9-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.9-funcrel
2.1.8-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.8-funcrel
2.1.7-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.7-funcrel
2.1.6-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.6-funcrel
2.1.5-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.5-funcrel
2.1.4-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.4-funcrel
2.1.3-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.3-funcrel
2.1.2-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.2-funcrel
2.1.1-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.1-funcrel
2.1.0-funcrelhttps://technologies.castsoftware.com/rules?sec=srs_html5&ref=||2.1.0-funcrel

A global list is also available here: https://technologies.castsoftware.com/rules?sec=t_1020000&ref=||.

...